/*! For license information please see dapp-plugin.min.js.LICENSE.txt */ ! function(t, e) {
	"object" == typeof exports && "object" == typeof module ? module.exports = e() : "function" == typeof define &&
		define.amd ? define("Dapp", [], e) : "object" == typeof exports ? exports.Dapp = e() : t.Dapp = e()
}(self, (function() {
	return function() {
		var t = {
				7757: function(t, e, r) {
					t.exports = r(5666)
				},
				9167: function(t) {
					"use strict";
					var e = String.prototype.replace,
						r = /%20/g,
						n = "RFC1738",
						i = "RFC3986";
					t.exports = {
						default: i,
						formatters: {
							RFC1738: function(t) {
								return e.call(t, r, "+")
							},
							RFC3986: function(t) {
								return String(t)
							}
						},
						RFC1738: n,
						RFC3986: i
					}
				},
				9342: function(t, e, r) {
					"use strict";
					var n = r(6010),
						i = r(2552),
						o = r(9167);
					t.exports = {
						formats: o,
						parse: i,
						stringify: n
					}
				},
				2552: function(t, e, r) {
					"use strict";
					var n = r(8089),
						i = Object.prototype.hasOwnProperty,
						o = Array.isArray,
						s = {
							allowDots: !1,
							allowPrototypes: !1,
							allowSparse: !1,
							arrayLimit: 20,
							charset: "utf-8",
							charsetSentinel: !1,
							comma: !1,
							decoder: n.decode,
							delimiter: "&",
							depth: 5,
							ignoreQueryPrefix: !1,
							interpretNumericEntities: !1,
							parameterLimit: 1e3,
							parseArrays: !0,
							plainObjects: !1,
							strictNullHandling: !1
						},
						a = function(t) {
							return t.replace(/&#(\d+);/g, (function(t, e) {
								return String.fromCharCode(parseInt(e, 10))
							}))
						},
						u = function(t, e) {
							return t && "string" == typeof t && e.comma && t.indexOf(",") > -1 ? t
								.split(",") : t
						},
						c = function(t, e, r, n) {
							if (t) {
								var o = r.allowDots ? t.replace(/\.([^.[]+)/g, "[$1]") : t,
									s = /(\[[^[\]]*])/g,
									a = r.depth > 0 && /(\[[^[\]]*])/.exec(o),
									c = a ? o.slice(0, a.index) : o,
									l = [];
								if (c) {
									if (!r.plainObjects && i.call(Object.prototype, c) && !r
										.allowPrototypes) return;
									l.push(c)
								}
								for (var h = 0; r.depth > 0 && null !== (a = s.exec(o)) && h < r
									.depth;) {
									if (h += 1, !r.plainObjects && i.call(Object.prototype, a[1].slice(
											1, -1)) && !r.allowPrototypes) return;
									l.push(a[1])
								}
								return a && l.push("[" + o.slice(a.index) + "]"),
									function(t, e, r, n) {
										for (var i = n ? e : u(e, r), o = t.length - 1; o >= 0; --o) {
											var s, a = t[o];
											if ("[]" === a && r.parseArrays) s = [].concat(i);
											else {
												s = r.plainObjects ? Object.create(null) : {};
												var c = "[" === a.charAt(0) && "]" === a.charAt(a
														.length - 1) ? a.slice(1, -1) : a,
													l = parseInt(c, 10);
												r.parseArrays || "" !== c ? !isNaN(l) && a !== c &&
													String(l) === c && l >= 0 && r.parseArrays && l <= r
													.arrayLimit ? (s = [])[l] = i : "__proto__" !== c &&
													(s[c] = i) : s = {
														0: i
													}
											}
											i = s
										}
										return i
									}(l, e, r, n)
							}
						};
					t.exports = function(t, e) {
						var r = function(t) {
							if (!t) return s;
							if (null !== t.decoder && void 0 !== t.decoder && "function" !=
								typeof t.decoder) throw new TypeError(
								"Decoder has to be a function.");
							if (void 0 !== t.charset && "utf-8" !== t.charset &&
								"iso-8859-1" !== t.charset) throw new TypeError(
								"The charset option must be either utf-8, iso-8859-1, or undefined"
								);
							var e = void 0 === t.charset ? s.charset : t.charset;
							return {
								allowDots: void 0 === t.allowDots ? s.allowDots : !!t.allowDots,
								allowPrototypes: "boolean" == typeof t.allowPrototypes ? t
									.allowPrototypes : s.allowPrototypes,
								allowSparse: "boolean" == typeof t.allowSparse ? t.allowSparse :
									s.allowSparse,
								arrayLimit: "number" == typeof t.arrayLimit ? t.arrayLimit : s
									.arrayLimit,
								charset: e,
								charsetSentinel: "boolean" == typeof t.charsetSentinel ? t
									.charsetSentinel : s.charsetSentinel,
								comma: "boolean" == typeof t.comma ? t.comma : s.comma,
								decoder: "function" == typeof t.decoder ? t.decoder : s.decoder,
								delimiter: "string" == typeof t.delimiter || n.isRegExp(t
									.delimiter) ? t.delimiter : s.delimiter,
								depth: "number" == typeof t.depth || !1 === t.depth ? +t.depth :
									s.depth,
								ignoreQueryPrefix: !0 === t.ignoreQueryPrefix,
								interpretNumericEntities: "boolean" == typeof t
									.interpretNumericEntities ? t.interpretNumericEntities : s
									.interpretNumericEntities,
								parameterLimit: "number" == typeof t.parameterLimit ? t
									.parameterLimit : s.parameterLimit,
								parseArrays: !1 !== t.parseArrays,
								plainObjects: "boolean" == typeof t.plainObjects ? t
									.plainObjects : s.plainObjects,
								strictNullHandling: "boolean" == typeof t.strictNullHandling ? t
									.strictNullHandling : s.strictNullHandling
							}
						}(e);
						if ("" === t || null == t) return r.plainObjects ? Object.create(null) : {};
						for (var l = "string" == typeof t ? function(t, e) {
									var r, c = {},
										l = e.ignoreQueryPrefix ? t.replace(/^\?/, "") : t,
										h = e.parameterLimit === 1 / 0 ? void 0 : e.parameterLimit,
										f = l.split(e.delimiter, h),
										d = -1,
										p = e.charset;
									if (e.charsetSentinel)
										for (r = 0; r < f.length; ++r) 0 === f[r].indexOf(
											"utf8=") && ("utf8=%E2%9C%93" === f[r] ? p = "utf-8" :
												"utf8=%26%2310003%3B" === f[r] && (p =
												"iso-8859-1"), d = r, r = f.length);
									for (r = 0; r < f.length; ++r)
										if (r !== d) {
											var m, g, y = f[r],
												v = y.indexOf("]="),
												b = -1 === v ? y.indexOf("=") : v + 1; - 1 === b ? (
													m = e.decoder(y, s.decoder, p, "key"), g = e
													.strictNullHandling ? null : "") : (m = e
													.decoder(y.slice(0, b), s.decoder, p, "key"),
													g = n.maybeMap(u(y.slice(b + 1), e), (function(
														t) {
														return e.decoder(t, s.decoder, p,
															"value")
													}))), g && e.interpretNumericEntities &&
												"iso-8859-1" === p && (g = a(g)), y.indexOf("[]=") >
												-1 && (g = o(g) ? [g] : g), i.call(c, m) ? c[m] = n
												.combine(c[m], g) : c[m] = g
										} return c
								}(t, r) : t, h = r.plainObjects ? Object.create(null) : {}, f =
								Object.keys(l), d = 0; d < f.length; ++d) {
							var p = f[d],
								m = c(p, l[p], r, "string" == typeof t);
							h = n.merge(h, m, r)
						}
						return !0 === r.allowSparse ? h : n.compact(h)
					}
				},
				6010: function(t, e, r) {
					"use strict";
					var n = r(7478),
						i = r(8089),
						o = r(9167),
						s = Object.prototype.hasOwnProperty,
						a = {
							brackets: function(t) {
								return t + "[]"
							},
							comma: "comma",
							indices: function(t, e) {
								return t + "[" + e + "]"
							},
							repeat: function(t) {
								return t
							}
						},
						u = Array.isArray,
						c = String.prototype.split,
						l = Array.prototype.push,
						h = function(t, e) {
							l.apply(t, u(e) ? e : [e])
						},
						f = Date.prototype.toISOString,
						d = o.default,
						p = {
							addQueryPrefix: !1,
							allowDots: !1,
							charset: "utf-8",
							charsetSentinel: !1,
							delimiter: "&",
							encode: !0,
							encoder: i.encode,
							encodeValuesOnly: !1,
							format: d,
							formatter: o.formatters[d],
							indices: !1,
							serializeDate: function(t) {
								return f.call(t)
							},
							skipNulls: !1,
							strictNullHandling: !1
						},
						m = {},
						g = function t(e, r, o, s, a, l, f, d, g, y, v, b, w, E, _) {
							for (var x, A = e, k = _, N = 0, S = !1; void 0 !== (k = k.get(m)) && !S;) {
								var P = k.get(e);
								if (N += 1, void 0 !== P) {
									if (P === N) throw new RangeError("Cyclic object value");
									S = !0
								}
								void 0 === k.get(m) && (N = 0)
							}
							if ("function" == typeof f ? A = f(r, A) : A instanceof Date ? A = y(A) :
								"comma" === o && u(A) && (A = i.maybeMap(A, (function(t) {
									return t instanceof Date ? y(t) : t
								}))), null === A) {
								if (s) return l && !w ? l(r, p.encoder, E, "key", v) : r;
								A = ""
							}
							if ("string" == typeof(x = A) || "number" == typeof x || "boolean" ==
								typeof x || "symbol" == typeof x || "bigint" == typeof x || i.isBuffer(
									A)) {
								if (l) {
									var M = w ? r : l(r, p.encoder, E, "key", v);
									if ("comma" === o && w) {
										for (var O = c.call(String(A), ","), I = "", T = 0; T < O
											.length; ++T) I += (0 === T ? "" : ",") + b(l(O[T], p
											.encoder, E, "value", v));
										return [b(M) + "=" + I]
									}
									return [b(M) + "=" + b(l(A, p.encoder, E, "value", v))]
								}
								return [b(r) + "=" + b(String(A))]
							}
							var R, C = [];
							if (void 0 === A) return C;
							if ("comma" === o && u(A)) R = [{
								value: A.length > 0 ? A.join(",") || null : void 0
							}];
							else if (u(f)) R = f;
							else {
								var B = Object.keys(A);
								R = d ? B.sort(d) : B
							}
							for (var F = 0; F < R.length; ++F) {
								var j = R[F],
									L = "object" == typeof j && void 0 !== j.value ? j.value : A[j];
								if (!a || null !== L) {
									var U = u(A) ? "function" == typeof o ? o(r, j) : r : r + (g ? "." +
										j : "[" + j + "]");
									_.set(e, N);
									var D = n();
									D.set(m, _), h(C, t(L, U, o, s, a, l, f, d, g, y, v, b, w, E, D))
								}
							}
							return C
						};
					t.exports = function(t, e) {
						var r, i = t,
							c = function(t) {
								if (!t) return p;
								if (null !== t.encoder && void 0 !== t.encoder && "function" !=
									typeof t.encoder) throw new TypeError(
									"Encoder has to be a function.");
								var e = t.charset || p.charset;
								if (void 0 !== t.charset && "utf-8" !== t.charset &&
									"iso-8859-1" !== t.charset) throw new TypeError(
									"The charset option must be either utf-8, iso-8859-1, or undefined"
									);
								var r = o.default;
								if (void 0 !== t.format) {
									if (!s.call(o.formatters, t.format)) throw new TypeError(
										"Unknown format option provided.");
									r = t.format
								}
								var n = o.formatters[r],
									i = p.filter;
								return ("function" == typeof t.filter || u(t.filter)) && (i = t
									.filter), {
									addQueryPrefix: "boolean" == typeof t.addQueryPrefix ? t
										.addQueryPrefix : p.addQueryPrefix,
									allowDots: void 0 === t.allowDots ? p.allowDots : !!t
										.allowDots,
									charset: e,
									charsetSentinel: "boolean" == typeof t.charsetSentinel ? t
										.charsetSentinel : p.charsetSentinel,
									delimiter: void 0 === t.delimiter ? p.delimiter : t
										.delimiter,
									encode: "boolean" == typeof t.encode ? t.encode : p.encode,
									encoder: "function" == typeof t.encoder ? t.encoder : p
										.encoder,
									encodeValuesOnly: "boolean" == typeof t.encodeValuesOnly ? t
										.encodeValuesOnly : p.encodeValuesOnly,
									filter: i,
									format: r,
									formatter: n,
									serializeDate: "function" == typeof t.serializeDate ? t
										.serializeDate : p.serializeDate,
									skipNulls: "boolean" == typeof t.skipNulls ? t.skipNulls : p
										.skipNulls,
									sort: "function" == typeof t.sort ? t.sort : null,
									strictNullHandling: "boolean" == typeof t
										.strictNullHandling ? t.strictNullHandling : p
										.strictNullHandling
								}
							}(e);
						"function" == typeof c.filter ? i = (0, c.filter)("", i) : u(c.filter) && (
							r = c.filter);
						var l, f = [];
						if ("object" != typeof i || null === i) return "";
						l = e && e.arrayFormat in a ? e.arrayFormat : e && "indices" in e ? e
							.indices ? "indices" : "repeat" : "indices";
						var d = a[l];
						r || (r = Object.keys(i)), c.sort && r.sort(c.sort);
						for (var m = n(), y = 0; y < r.length; ++y) {
							var v = r[y];
							c.skipNulls && null === i[v] || h(f, g(i[v], v, d, c.strictNullHandling,
								c.skipNulls, c.encode ? c.encoder : null, c.filter, c.sort,
								c.allowDots, c.serializeDate, c.format, c.formatter, c
								.encodeValuesOnly, c.charset, m))
						}
						var b = f.join(c.delimiter),
							w = !0 === c.addQueryPrefix ? "?" : "";
						return c.charsetSentinel && ("iso-8859-1" === c.charset ? w +=
								"utf8=%26%2310003%3B&" : w += "utf8=%E2%9C%93&"), b.length > 0 ? w +
							b : ""
					}
				},
				8089: function(t, e, r) {
					"use strict";
					var n = r(9167),
						i = Object.prototype.hasOwnProperty,
						o = Array.isArray,
						s = function() {
							for (var t = [], e = 0; e < 256; ++e) t.push("%" + ((e < 16 ? "0" : "") + e
								.toString(16)).toUpperCase());
							return t
						}(),
						a = function(t, e) {
							for (var r = e && e.plainObjects ? Object.create(null) : {}, n = 0; n < t
								.length; ++n) void 0 !== t[n] && (r[n] = t[n]);
							return r
						};
					t.exports = {
						arrayToObject: a,
						assign: function(t, e) {
							return Object.keys(e).reduce((function(t, r) {
								return t[r] = e[r], t
							}), t)
						},
						combine: function(t, e) {
							return [].concat(t, e)
						},
						compact: function(t) {
							for (var e = [{
									obj: {
										o: t
									},
									prop: "o"
								}], r = [], n = 0; n < e.length; ++n)
								for (var i = e[n], s = i.obj[i.prop], a = Object.keys(s), u =
									0; u < a.length; ++u) {
									var c = a[u],
										l = s[c];
									"object" == typeof l && null !== l && -1 === r.indexOf(l) &&
										(e.push({
											obj: s,
											prop: c
										}), r.push(l))
								}
							return function(t) {
								for (; t.length > 1;) {
									var e = t.pop(),
										r = e.obj[e.prop];
									if (o(r)) {
										for (var n = [], i = 0; i < r.length; ++i)
											void 0 !== r[i] && n.push(r[i]);
										e.obj[e.prop] = n
									}
								}
							}(e), t
						},
						decode: function(t, e, r) {
							var n = t.replace(/\+/g, " ");
							if ("iso-8859-1" === r) return n.replace(/%[0-9a-f]{2}/gi,
							unescape);
							try {
								return decodeURIComponent(n)
							} catch (t) {
								return n
							}
						},
						encode: function(t, e, r, i, o) {
							if (0 === t.length) return t;
							var a = t;
							if ("symbol" == typeof t ? a = Symbol.prototype.toString.call(t) :
								"string" != typeof t && (a = String(t)), "iso-8859-1" === r)
								return escape(a).replace(/%u[0-9a-f]{4}/gi, (function(t) {
									return "%26%23" + parseInt(t.slice(2), 16) +
										"%3B"
								}));
							for (var u = "", c = 0; c < a.length; ++c) {
								var l = a.charCodeAt(c);
								45 === l || 46 === l || 95 === l || 126 === l || l >= 48 && l <=
									57 || l >= 65 && l <= 90 || l >= 97 && l <= 122 || o === n
									.RFC1738 && (40 === l || 41 === l) ? u += a.charAt(c) : l <
									128 ? u += s[l] : l < 2048 ? u += s[192 | l >> 6] + s[128 |
										63 & l] : l < 55296 || l >= 57344 ? u += s[224 | l >>
										12] + s[128 | l >> 6 & 63] + s[128 | 63 & l] : (c += 1,
										l = 65536 + ((1023 & l) << 10 | 1023 & a.charCodeAt(c)),
										u += s[240 | l >> 18] + s[128 | l >> 12 & 63] + s[128 |
											l >> 6 & 63] + s[128 | 63 & l])
							}
							return u
						},
						isBuffer: function(t) {
							return !(!t || "object" != typeof t) && !!(t.constructor && t
								.constructor.isBuffer && t.constructor.isBuffer(t))
						},
						isRegExp: function(t) {
							return "[object RegExp]" === Object.prototype.toString.call(t)
						},
						maybeMap: function(t, e) {
							if (o(t)) {
								for (var r = [], n = 0; n < t.length; n += 1) r.push(e(t[n]));
								return r
							}
							return e(t)
						},
						merge: function t(e, r, n) {
							if (!r) return e;
							if ("object" != typeof r) {
								if (o(e)) e.push(r);
								else {
									if (!e || "object" != typeof e) return [e, r];
									(n && (n.plainObjects || n.allowPrototypes) || !i.call(
										Object.prototype, r)) && (e[r] = !0)
								}
								return e
							}
							if (!e || "object" != typeof e) return [e].concat(r);
							var s = e;
							return o(e) && !o(r) && (s = a(e, n)), o(e) && o(r) ? (r.forEach((
								function(r, o) {
									if (i.call(e, o)) {
										var s = e[o];
										s && "object" == typeof s && r &&
											"object" == typeof r ? e[o] = t(s, r,
											n) : e.push(r)
									} else e[o] = r
								})), e) : Object.keys(r).reduce((function(e, o) {
								var s = r[o];
								return i.call(e, o) ? e[o] = t(e[o], s, n) : e[o] =
									s, e
							}), s)
						}
					}
				},
				9669: function(t, e, r) {
					t.exports = r(1609)
				},
				5448: function(t, e, r) {
					"use strict";
					var n = r(4867),
						i = r(6026),
						o = r(4372),
						s = r(5327),
						a = r(4097),
						u = r(4109),
						c = r(7985),
						l = r(5061),
						h = r(5655),
						f = r(5263);
					t.exports = function(t) {
						return new Promise((function(e, r) {
							var d, p = t.data,
								m = t.headers,
								g = t.responseType;

							function y() {
								t.cancelToken && t.cancelToken.unsubscribe(d), t
									.signal && t.signal.removeEventListener("abort", d)
							}
							n.isFormData(p) && delete m["Content-Type"];
							var v = new XMLHttpRequest;
							if (t.auth) {
								var b = t.auth.username || "",
									w = t.auth.password ? unescape(encodeURIComponent(t
										.auth.password)) : "";
								m.Authorization = "Basic " + btoa(b + ":" + w)
							}
							var E = a(t.baseURL, t.url);

							function _() {
								if (v) {
									var n = "getAllResponseHeaders" in v ? u(v
											.getAllResponseHeaders()) : null,
										o = {
											data: g && "text" !== g && "json" !== g ? v
												.response : v.responseText,
											status: v.status,
											statusText: v.statusText,
											headers: n,
											config: t,
											request: v
										};
									i((function(t) {
										e(t), y()
									}), (function(t) {
										r(t), y()
									}), o), v = null
								}
							}
							if (v.open(t.method.toUpperCase(), s(E, t.params, t
									.paramsSerializer), !0), v.timeout = t.timeout,
								"onloadend" in v ? v.onloadend = _ : v
								.onreadystatechange = function() {
									v && 4 === v.readyState && (0 !== v.status || v
										.responseURL && 0 === v.responseURL.indexOf(
											"file:")) && setTimeout(_)
								}, v.onabort = function() {
									v && (r(l("Request aborted", t, "ECONNABORTED", v)),
										v = null)
								}, v.onerror = function() {
									r(l("Network Error", t, null, v)), v = null
								}, v.ontimeout = function() {
									var e = t.timeout ? "timeout of " + t.timeout +
										"ms exceeded" : "timeout exceeded",
										n = t.transitional || h.transitional;
									t.timeoutErrorMessage && (e = t
										.timeoutErrorMessage), r(l(e, t, n
											.clarifyTimeoutError ? "ETIMEDOUT" :
											"ECONNABORTED", v)), v = null
								}, n.isStandardBrowserEnv()) {
								var x = (t.withCredentials || c(E)) && t
									.xsrfCookieName ? o.read(t.xsrfCookieName) : void 0;
								x && (m[t.xsrfHeaderName] = x)
							}
							"setRequestHeader" in v && n.forEach(m, (function(t, e) {
									void 0 === p && "content-type" === e
										.toLowerCase() ? delete m[e] : v
										.setRequestHeader(e, t)
								})), n.isUndefined(t.withCredentials) || (v
									.withCredentials = !!t.withCredentials), g &&
								"json" !== g && (v.responseType = t.responseType),
								"function" == typeof t.onDownloadProgress && v
								.addEventListener("progress", t.onDownloadProgress),
								"function" == typeof t.onUploadProgress && v.upload && v
								.upload.addEventListener("progress", t
								.onUploadProgress), (t.cancelToken || t.signal) && (d =
									function(t) {
										v && (r(!t || t && t.type ? new f("canceled") :
											t), v.abort(), v = null)
									}, t.cancelToken && t.cancelToken.subscribe(d), t
									.signal && (t.signal.aborted ? d() : t.signal
										.addEventListener("abort", d))), p || (p =
								null), v.send(p)
						}))
					}
				},
				1609: function(t, e, r) {
					"use strict";
					var n = r(4867),
						i = r(1849),
						o = r(321),
						s = r(7185);
					var a = function t(e) {
						var r = new o(e),
							a = i(o.prototype.request, r);
						return n.extend(a, o.prototype, r), n.extend(a, r), a.create = function(r) {
							return t(s(e, r))
						}, a
					}(r(5655));
					a.Axios = o, a.Cancel = r(5263), a.CancelToken = r(4972), a.isCancel = r(6502), a
						.VERSION = r(7288).version, a.all = function(t) {
							return Promise.all(t)
						}, a.spread = r(8713), a.isAxiosError = r(6268), t.exports = a, t.exports
						.default = a
				},
				5263: function(t) {
					"use strict";

					function e(t) {
						this.message = t
					}
					e.prototype.toString = function() {
						return "Cancel" + (this.message ? ": " + this.message : "")
					}, e.prototype.__CANCEL__ = !0, t.exports = e
				},
				4972: function(t, e, r) {
					"use strict";
					var n = r(5263);

					function i(t) {
						if ("function" != typeof t) throw new TypeError("executor must be a function.");
						var e;
						this.promise = new Promise((function(t) {
							e = t
						}));
						var r = this;
						this.promise.then((function(t) {
							if (r._listeners) {
								var e, n = r._listeners.length;
								for (e = 0; e < n; e++) r._listeners[e](t);
								r._listeners = null
							}
						})), this.promise.then = function(t) {
							var e, n = new Promise((function(t) {
								r.subscribe(t), e = t
							})).then(t);
							return n.cancel = function() {
								r.unsubscribe(e)
							}, n
						}, t((function(t) {
							r.reason || (r.reason = new n(t), e(r.reason))
						}))
					}
					i.prototype.throwIfRequested = function() {
						if (this.reason) throw this.reason
					}, i.prototype.subscribe = function(t) {
						this.reason ? t(this.reason) : this._listeners ? this._listeners.push(t) :
							this._listeners = [t]
					}, i.prototype.unsubscribe = function(t) {
						if (this._listeners) {
							var e = this._listeners.indexOf(t); - 1 !== e && this._listeners.splice(
								e, 1)
						}
					}, i.source = function() {
						var t;
						return {
							token: new i((function(e) {
								t = e
							})),
							cancel: t
						}
					}, t.exports = i
				},
				6502: function(t) {
					"use strict";
					t.exports = function(t) {
						return !(!t || !t.__CANCEL__)
					}
				},
				321: function(t, e, r) {
					"use strict";
					var n = r(4867),
						i = r(5327),
						o = r(782),
						s = r(3572),
						a = r(7185),
						u = r(4875),
						c = u.validators;

					function l(t) {
						this.defaults = t, this.interceptors = {
							request: new o,
							response: new o
						}
					}
					l.prototype.request = function(t) {
						"string" == typeof t ? (t = arguments[1] || {}).url = arguments[0] : t =
							t || {}, (t = a(this.defaults, t)).method ? t.method = t.method
							.toLowerCase() : this.defaults.method ? t.method = this.defaults.method
							.toLowerCase() : t.method = "get";
						var e = t.transitional;
						void 0 !== e && u.assertOptions(e, {
							silentJSONParsing: c.transitional(c.boolean),
							forcedJSONParsing: c.transitional(c.boolean),
							clarifyTimeoutError: c.transitional(c.boolean)
						}, !1);
						var r = [],
							n = !0;
						this.interceptors.request.forEach((function(e) {
							"function" == typeof e.runWhen && !1 === e.runWhen(t) || (
								n = n && e.synchronous, r.unshift(e.fulfilled, e
									.rejected))
						}));
						var i, o = [];
						if (this.interceptors.response.forEach((function(t) {
								o.push(t.fulfilled, t.rejected)
							})), !n) {
							var l = [s, void 0];
							for (Array.prototype.unshift.apply(l, r), l = l.concat(o), i = Promise
								.resolve(t); l.length;) i = i.then(l.shift(), l.shift());
							return i
						}
						for (var h = t; r.length;) {
							var f = r.shift(),
								d = r.shift();
							try {
								h = f(h)
							} catch (t) {
								d(t);
								break
							}
						}
						try {
							i = s(h)
						} catch (t) {
							return Promise.reject(t)
						}
						for (; o.length;) i = i.then(o.shift(), o.shift());
						return i
					}, l.prototype.getUri = function(t) {
						return t = a(this.defaults, t), i(t.url, t.params, t.paramsSerializer)
							.replace(/^\?/, "")
					}, n.forEach(["delete", "get", "head", "options"], (function(t) {
						l.prototype[t] = function(e, r) {
							return this.request(a(r || {}, {
								method: t,
								url: e,
								data: (r || {}).data
							}))
						}
					})), n.forEach(["post", "put", "patch"], (function(t) {
						l.prototype[t] = function(e, r, n) {
							return this.request(a(n || {}, {
								method: t,
								url: e,
								data: r
							}))
						}
					})), t.exports = l
				},
				782: function(t, e, r) {
					"use strict";
					var n = r(4867);

					function i() {
						this.handlers = []
					}
					i.prototype.use = function(t, e, r) {
						return this.handlers.push({
							fulfilled: t,
							rejected: e,
							synchronous: !!r && r.synchronous,
							runWhen: r ? r.runWhen : null
						}), this.handlers.length - 1
					}, i.prototype.eject = function(t) {
						this.handlers[t] && (this.handlers[t] = null)
					}, i.prototype.forEach = function(t) {
						n.forEach(this.handlers, (function(e) {
							null !== e && t(e)
						}))
					}, t.exports = i
				},
				4097: function(t, e, r) {
					"use strict";
					var n = r(1793),
						i = r(7303);
					t.exports = function(t, e) {
						return t && !n(e) ? i(t, e) : e
					}
				},
				5061: function(t, e, r) {
					"use strict";
					var n = r(481);
					t.exports = function(t, e, r, i, o) {
						var s = new Error(t);
						return n(s, e, r, i, o)
					}
				},
				3572: function(t, e, r) {
					"use strict";
					var n = r(4867),
						i = r(8527),
						o = r(6502),
						s = r(5655),
						a = r(5263);

					function u(t) {
						if (t.cancelToken && t.cancelToken.throwIfRequested(), t.signal && t.signal
							.aborted) throw new a("canceled")
					}
					t.exports = function(t) {
						return u(t), t.headers = t.headers || {}, t.data = i.call(t, t.data, t
							.headers, t.transformRequest), t.headers = n.merge(t.headers
							.common || {}, t.headers[t.method] || {}, t.headers), n.forEach([
							"delete", "get", "head", "post", "put", "patch", "common"
						], (function(e) {
							delete t.headers[e]
						})), (t.adapter || s.adapter)(t).then((function(e) {
							return u(t), e.data = i.call(t, e.data, e.headers, t
								.transformResponse), e
						}), (function(e) {
							return o(e) || (u(t), e && e.response && (e.response.data =
								i.call(t, e.response.data, e.response.headers, t
									.transformResponse))), Promise.reject(e)
						}))
					}
				},
				481: function(t) {
					"use strict";
					t.exports = function(t, e, r, n, i) {
						return t.config = e, r && (t.code = r), t.request = n, t.response = i, t
							.isAxiosError = !0, t.toJSON = function() {
								return {
									message: this.message,
									name: this.name,
									description: this.description,
									number: this.number,
									fileName: this.fileName,
									lineNumber: this.lineNumber,
									columnNumber: this.columnNumber,
									stack: this.stack,
									config: this.config,
									code: this.code,
									status: this.response && this.response.status ? this.response
										.status : null
								}
							}, t
					}
				},
				7185: function(t, e, r) {
					"use strict";
					var n = r(4867);
					t.exports = function(t, e) {
						e = e || {};
						var r = {};

						function i(t, e) {
							return n.isPlainObject(t) && n.isPlainObject(e) ? n.merge(t, e) : n
								.isPlainObject(e) ? n.merge({}, e) : n.isArray(e) ? e.slice() : e
						}

						function o(r) {
							return n.isUndefined(e[r]) ? n.isUndefined(t[r]) ? void 0 : i(void 0, t[
								r]) : i(t[r], e[r])
						}

						function s(t) {
							if (!n.isUndefined(e[t])) return i(void 0, e[t])
						}

						function a(r) {
							return n.isUndefined(e[r]) ? n.isUndefined(t[r]) ? void 0 : i(void 0, t[
								r]) : i(void 0, e[r])
						}

						function u(r) {
							return r in e ? i(t[r], e[r]) : r in t ? i(void 0, t[r]) : void 0
						}
						var c = {
							url: s,
							method: s,
							data: s,
							baseURL: a,
							transformRequest: a,
							transformResponse: a,
							paramsSerializer: a,
							timeout: a,
							timeoutMessage: a,
							withCredentials: a,
							adapter: a,
							responseType: a,
							xsrfCookieName: a,
							xsrfHeaderName: a,
							onUploadProgress: a,
							onDownloadProgress: a,
							decompress: a,
							maxContentLength: a,
							maxBodyLength: a,
							transport: a,
							httpAgent: a,
							httpsAgent: a,
							cancelToken: a,
							socketPath: a,
							responseEncoding: a,
							validateStatus: u
						};
						return n.forEach(Object.keys(t).concat(Object.keys(e)), (function(t) {
							var e = c[t] || o,
								i = e(t);
							n.isUndefined(i) && e !== u || (r[t] = i)
						})), r
					}
				},
				6026: function(t, e, r) {
					"use strict";
					var n = r(5061);
					t.exports = function(t, e, r) {
						var i = r.config.validateStatus;
						r.status && i && !i(r.status) ? e(n("Request failed with status code " + r
							.status, r.config, null, r.request, r)) : t(r)
					}
				},
				8527: function(t, e, r) {
					"use strict";
					var n = r(4867),
						i = r(5655);
					t.exports = function(t, e, r) {
						var o = this || i;
						return n.forEach(r, (function(r) {
							t = r.call(o, t, e)
						})), t
					}
				},
				5655: function(t, e, r) {
					"use strict";
					var n = r(4867),
						i = r(6016),
						o = r(481),
						s = {
							"Content-Type": "application/x-www-form-urlencoded"
						};

					function a(t, e) {
						!n.isUndefined(t) && n.isUndefined(t["Content-Type"]) && (t["Content-Type"] = e)
					}
					var u, c = {
						transitional: {
							silentJSONParsing: !0,
							forcedJSONParsing: !0,
							clarifyTimeoutError: !1
						},
						adapter: (("undefined" != typeof XMLHttpRequest || "undefined" !=
							typeof process && "[object process]" === Object.prototype
							.toString.call(process)) && (u = r(5448)), u),
						transformRequest: [function(t, e) {
							return i(e, "Accept"), i(e, "Content-Type"), n.isFormData(t) ||
								n.isArrayBuffer(t) || n.isBuffer(t) || n.isStream(t) || n
								.isFile(t) || n.isBlob(t) ? t : n.isArrayBufferView(t) ? t
								.buffer : n.isURLSearchParams(t) ? (a(e,
										"application/x-www-form-urlencoded;charset=utf-8"),
									t.toString()) : n.isObject(t) || e &&
								"application/json" === e["Content-Type"] ? (a(e,
									"application/json"), function(t, e, r) {
									if (n.isString(t)) try {
										return (e || JSON.parse)(t), n.trim(t)
									} catch (t) {
										if ("SyntaxError" !== t.name) throw t
									}
									return (r || JSON.stringify)(t)
								}(t)) : t
						}],
						transformResponse: [function(t) {
							var e = this.transitional || c.transitional,
								r = e && e.silentJSONParsing,
								i = e && e.forcedJSONParsing,
								s = !r && "json" === this.responseType;
							if (s || i && n.isString(t) && t.length) try {
								return JSON.parse(t)
							} catch (t) {
								if (s) {
									if ("SyntaxError" === t.name) throw o(t, this,
										"E_JSON_PARSE");
									throw t
								}
							}
							return t
						}],
						timeout: 0,
						xsrfCookieName: "XSRF-TOKEN",
						xsrfHeaderName: "X-XSRF-TOKEN",
						maxContentLength: -1,
						maxBodyLength: -1,
						validateStatus: function(t) {
							return t >= 200 && t < 300
						},
						headers: {
							common: {
								Accept: "application/json, text/plain, */*"
							}
						}
					};
					n.forEach(["delete", "get", "head"], (function(t) {
						c.headers[t] = {}
					})), n.forEach(["post", "put", "patch"], (function(t) {
						c.headers[t] = n.merge(s)
					})), t.exports = c
				},
				7288: function(t) {
					t.exports = {
						version: "0.24.0"
					}
				},
				1849: function(t) {
					"use strict";
					t.exports = function(t, e) {
						return function() {
							for (var r = new Array(arguments.length), n = 0; n < r.length; n++)
								r[n] = arguments[n];
							return t.apply(e, r)
						}
					}
				},
				5327: function(t, e, r) {
					"use strict";
					var n = r(4867);

					function i(t) {
						return encodeURIComponent(t).replace(/%3A/gi, ":").replace(/%24/g, "$").replace(
							/%2C/gi, ",").replace(/%20/g, "+").replace(/%5B/gi, "[").replace(
							/%5D/gi, "]")
					}
					t.exports = function(t, e, r) {
						if (!e) return t;
						var o;
						if (r) o = r(e);
						else if (n.isURLSearchParams(e)) o = e.toString();
						else {
							var s = [];
							n.forEach(e, (function(t, e) {
								null != t && (n.isArray(t) ? e += "[]" : t = [t], n
									.forEach(t, (function(t) {
										n.isDate(t) ? t = t.toISOString() :
											n.isObject(t) && (t = JSON
												.stringify(t)), s.push(i(
												e) + "=" + i(t))
									})))
							})), o = s.join("&")
						}
						if (o) {
							var a = t.indexOf("#"); - 1 !== a && (t = t.slice(0, a)), t += (-1 === t
								.indexOf("?") ? "?" : "&") + o
						}
						return t
					}
				},
				7303: function(t) {
					"use strict";
					t.exports = function(t, e) {
						return e ? t.replace(/\/+$/, "") + "/" + e.replace(/^\/+/, "") : t
					}
				},
				4372: function(t, e, r) {
					"use strict";
					var n = r(4867);
					t.exports = n.isStandardBrowserEnv() ? {
						write: function(t, e, r, i, o, s) {
							var a = [];
							a.push(t + "=" + encodeURIComponent(e)), n.isNumber(r) && a.push(
									"expires=" + new Date(r).toGMTString()), n.isString(i) && a
								.push("path=" + i), n.isString(o) && a.push("domain=" + o), !
								0 === s && a.push("secure"), document.cookie = a.join("; ")
						},
						read: function(t) {
							var e = document.cookie.match(new RegExp("(^|;\\s*)(" + t +
								")=([^;]*)"));
							return e ? decodeURIComponent(e[3]) : null
						},
						remove: function(t) {
							this.write(t, "", Date.now() - 864e5)
						}
					} : {
						write: function() {},
						read: function() {
							return null
						},
						remove: function() {}
					}
				},
				1793: function(t) {
					"use strict";
					t.exports = function(t) {
						return /^([a-z][a-z\d\+\-\.]*:)?\/\//i.test(t)
					}
				},
				6268: function(t) {
					"use strict";
					t.exports = function(t) {
						return "object" == typeof t && !0 === t.isAxiosError
					}
				},
				7985: function(t, e, r) {
					"use strict";
					var n = r(4867);
					t.exports = n.isStandardBrowserEnv() ? function() {
						var t, e = /(msie|trident)/i.test(navigator.userAgent),
							r = document.createElement("a");

						function i(t) {
							var n = t;
							return e && (r.setAttribute("href", n), n = r.href), r.setAttribute(
								"href", n), {
								href: r.href,
								protocol: r.protocol ? r.protocol.replace(/:$/, "") : "",
								host: r.host,
								search: r.search ? r.search.replace(/^\?/, "") : "",
								hash: r.hash ? r.hash.replace(/^#/, "") : "",
								hostname: r.hostname,
								port: r.port,
								pathname: "/" === r.pathname.charAt(0) ? r.pathname : "/" + r
									.pathname
							}
						}
						return t = i(window.location.href),
							function(e) {
								var r = n.isString(e) ? i(e) : e;
								return r.protocol === t.protocol && r.host === t.host
							}
					}() : function() {
						return !0
					}
				},
				6016: function(t, e, r) {
					"use strict";
					var n = r(4867);
					t.exports = function(t, e) {
						n.forEach(t, (function(r, n) {
							n !== e && n.toUpperCase() === e.toUpperCase() && (t[e] = r,
								delete t[n])
						}))
					}
				},
				4109: function(t, e, r) {
					"use strict";
					var n = r(4867),
						i = ["age", "authorization", "content-length", "content-type", "etag",
							"expires", "from", "host", "if-modified-since", "if-unmodified-since",
							"last-modified", "location", "max-forwards", "proxy-authorization",
							"referer", "retry-after", "user-agent"
						];
					t.exports = function(t) {
						var e, r, o, s = {};
						return t ? (n.forEach(t.split("\n"), (function(t) {
							if (o = t.indexOf(":"), e = n.trim(t.substr(0, o))
								.toLowerCase(), r = n.trim(t.substr(o + 1)), e) {
								if (s[e] && i.indexOf(e) >= 0) return;
								s[e] = "set-cookie" === e ? (s[e] ? s[e] : [])
									.concat([r]) : s[e] ? s[e] + ", " + r : r
							}
						})), s) : s
					}
				},
				8713: function(t) {
					"use strict";
					t.exports = function(t) {
						return function(e) {
							return t.apply(null, e)
						}
					}
				},
				4875: function(t, e, r) {
					"use strict";
					var n = r(7288).version,
						i = {};
					["object", "boolean", "number", "function", "string", "symbol"].forEach((function(t,
						e) {
						i[t] = function(r) {
							return typeof r === t || "a" + (e < 1 ? "n " : " ") + t
						}
					}));
					var o = {};
					i.transitional = function(t, e, r) {
						function i(t, e) {
							return "[Axios v" + n + "] Transitional option '" + t + "'" + e + (r ?
								". " + r : "")
						}
						return function(r, n, s) {
							if (!1 === t) throw new Error(i(n, " has been removed" + (e ?
								" in " + e : "")));
							return e && !o[n] && (o[n] = !0, console.warn(i(n,
								" has been deprecated since v" + e +
								" and will be removed in the near future"))), !t || t(r, n,
								s)
						}
					}, t.exports = {
						assertOptions: function(t, e, r) {
							if ("object" != typeof t) throw new TypeError(
								"options must be an object");
							for (var n = Object.keys(t), i = n.length; i-- > 0;) {
								var o = n[i],
									s = e[o];
								if (s) {
									var a = t[o],
										u = void 0 === a || s(a, o, t);
									if (!0 !== u) throw new TypeError("option " + o +
										" must be " + u)
								} else if (!0 !== r) throw Error("Unknown option " + o)
							}
						},
						validators: i
					}
				},
				4867: function(t, e, r) {
					"use strict";
					var n = r(1849),
						i = Object.prototype.toString;

					function o(t) {
						return "[object Array]" === i.call(t)
					}

					function s(t) {
						return void 0 === t
					}

					function a(t) {
						return null !== t && "object" == typeof t
					}

					function u(t) {
						if ("[object Object]" !== i.call(t)) return !1;
						var e = Object.getPrototypeOf(t);
						return null === e || e === Object.prototype
					}

					function c(t) {
						return "[object Function]" === i.call(t)
					}

					function l(t, e) {
						if (null != t)
							if ("object" != typeof t && (t = [t]), o(t))
								for (var r = 0, n = t.length; r < n; r++) e.call(null, t[r], r, t);
							else
								for (var i in t) Object.prototype.hasOwnProperty.call(t, i) && e.call(
									null, t[i], i, t)
					}
					t.exports = {
						isArray: o,
						isArrayBuffer: function(t) {
							return "[object ArrayBuffer]" === i.call(t)
						},
						isBuffer: function(t) {
							return null !== t && !s(t) && null !== t.constructor && !s(t
									.constructor) && "function" == typeof t.constructor
								.isBuffer && t.constructor.isBuffer(t)
						},
						isFormData: function(t) {
							return "undefined" != typeof FormData && t instanceof FormData
						},
						isArrayBufferView: function(t) {
							return "undefined" != typeof ArrayBuffer && ArrayBuffer.isView ?
								ArrayBuffer.isView(t) : t && t.buffer && t
								.buffer instanceof ArrayBuffer
						},
						isString: function(t) {
							return "string" == typeof t
						},
						isNumber: function(t) {
							return "number" == typeof t
						},
						isObject: a,
						isPlainObject: u,
						isUndefined: s,
						isDate: function(t) {
							return "[object Date]" === i.call(t)
						},
						isFile: function(t) {
							return "[object File]" === i.call(t)
						},
						isBlob: function(t) {
							return "[object Blob]" === i.call(t)
						},
						isFunction: c,
						isStream: function(t) {
							return a(t) && c(t.pipe)
						},
						isURLSearchParams: function(t) {
							return "undefined" != typeof URLSearchParams &&
								t instanceof URLSearchParams
						},
						isStandardBrowserEnv: function() {
							return ("undefined" == typeof navigator || "ReactNative" !==
								navigator.product && "NativeScript" !== navigator.product &&
								"NS" !== navigator.product) && ("undefined" !=
								typeof window && "undefined" != typeof document)
						},
						forEach: l,
						merge: function t() {
							var e = {};

							function r(r, n) {
								u(e[n]) && u(r) ? e[n] = t(e[n], r) : u(r) ? e[n] = t({}, r) :
									o(r) ? e[n] = r.slice() : e[n] = r
							}
							for (var n = 0, i = arguments.length; n < i; n++) l(arguments[n],
							r);
							return e
						},
						extend: function(t, e, r) {
							return l(e, (function(e, i) {
								t[i] = r && "function" == typeof e ? n(e, r) : e
							})), t
						},
						trim: function(t) {
							return t.trim ? t.trim() : t.replace(/^\s+|\s+$/g, "")
						},
						stripBOM: function(t) {
							return 65279 === t.charCodeAt(0) && (t = t.slice(1)), t
						}
					}
				},
				2882: function(t) {
					"use strict";
					for (var e = "qpzry9x8gf2tvdw0s3jn54khce6mua7l", r = {}, n = 0; n < e.length; n++) {
						var i = e.charAt(n);
						if (void 0 !== r[i]) throw new TypeError(i + " is ambiguous");
						r[i] = n
					}

					function o(t) {
						var e = t >> 25;
						return (33554431 & t) << 5 ^ 996825010 & -(e >> 0 & 1) ^ 642813549 & -(e >> 1 &
								1) ^ 513874426 & -(e >> 2 & 1) ^ 1027748829 & -(e >> 3 & 1) ^
							705979059 & -(e >> 4 & 1)
					}

					function s(t) {
						for (var e = 1, r = 0; r < t.length; ++r) {
							var n = t.charCodeAt(r);
							if (n < 33 || n > 126) return "Invalid prefix (" + t + ")";
							e = o(e) ^ n >> 5
						}
						for (e = o(e), r = 0; r < t.length; ++r) {
							var i = t.charCodeAt(r);
							e = o(e) ^ 31 & i
						}
						return e
					}

					function a(t, e) {
						if (e = e || 90, t.length < 8) return t + " too short";
						if (t.length > e) return "Exceeds length limit";
						var n = t.toLowerCase(),
							i = t.toUpperCase();
						if (t !== n && t !== i) return "Mixed-case string " + t;
						var a = (t = n).lastIndexOf("1");
						if (-1 === a) return "No separator character for " + t;
						if (0 === a) return "Missing prefix for " + t;
						var u = t.slice(0, a),
							c = t.slice(a + 1);
						if (c.length < 6) return "Data too short";
						var l = s(u);
						if ("string" == typeof l) return l;
						for (var h = [], f = 0; f < c.length; ++f) {
							var d = c.charAt(f),
								p = r[d];
							if (void 0 === p) return "Unknown character " + d;
							l = o(l) ^ p, f + 6 >= c.length || h.push(p)
						}
						return 1 !== l ? "Invalid checksum for " + t : {
							prefix: u,
							words: h
						}
					}

					function u(t, e, r, n) {
						for (var i = 0, o = 0, s = (1 << r) - 1, a = [], u = 0; u < t.length; ++u)
							for (i = i << e | t[u], o += e; o >= r;) o -= r, a.push(i >> o & s);
						if (n) o > 0 && a.push(i << r - o & s);
						else {
							if (o >= e) return "Excess padding";
							if (i << r - o & s) return "Non-zero padding"
						}
						return a
					}
					t.exports = {
						decodeUnsafe: function() {
							var t = a.apply(null, arguments);
							if ("object" == typeof t) return t
						},
						decode: function(t) {
							var e = a.apply(null, arguments);
							if ("object" == typeof e) return e;
							throw new Error(e)
						},
						encode: function(t, r, n) {
							if (n = n || 90, t.length + 7 + r.length > n) throw new TypeError(
								"Exceeds length limit");
							var i = s(t = t.toLowerCase());
							if ("string" == typeof i) throw new Error(i);
							for (var a = t + "1", u = 0; u < r.length; ++u) {
								var c = r[u];
								if (c >> 5 != 0) throw new Error("Non 5-bit word");
								i = o(i) ^ c, a += e.charAt(c)
							}
							for (u = 0; u < 6; ++u) i = o(i);
							for (i ^= 1, u = 0; u < 6; ++u) {
								a += e.charAt(i >> 5 * (5 - u) & 31)
							}
							return a
						},
						toWordsUnsafe: function(t) {
							var e = u(t, 8, 5, !0);
							if (Array.isArray(e)) return e
						},
						toWords: function(t) {
							var e = u(t, 8, 5, !0);
							if (Array.isArray(e)) return e;
							throw new Error(e)
						},
						fromWordsUnsafe: function(t) {
							var e = u(t, 5, 8, !1);
							if (Array.isArray(e)) return e
						},
						fromWords: function(t) {
							var e = u(t, 5, 8, !1);
							if (Array.isArray(e)) return e;
							throw new Error(e)
						}
					}
				},
				4431: function(t, e, r) {
					var n;
					! function(i) {
						"use strict";
						var o, s = /^-?(?:\d+(?:\.\d*)?|\.\d+)(?:e[+-]?\d+)?$/i,
							a = Math.ceil,
							u = Math.floor,
							c = "[BigNumber Error] ",
							l = c + "Number primitive has more than 15 significant digits: ",
							h = 1e14,
							f = 14,
							d = 9007199254740991,
							p = [1, 10, 100, 1e3, 1e4, 1e5, 1e6, 1e7, 1e8, 1e9, 1e10, 1e11, 1e12, 1e13],
							m = 1e7,
							g = 1e9;

						function y(t) {
							var e = 0 | t;
							return t > 0 || t === e ? e : e - 1
						}

						function v(t) {
							for (var e, r, n = 1, i = t.length, o = t[0] + ""; n < i;) {
								for (e = t[n++] + "", r = f - e.length; r--; e = "0" + e);
								o += e
							}
							for (i = o.length; 48 === o.charCodeAt(--i););
							return o.slice(0, i + 1 || 1)
						}

						function b(t, e) {
							var r, n, i = t.c,
								o = e.c,
								s = t.s,
								a = e.s,
								u = t.e,
								c = e.e;
							if (!s || !a) return null;
							if (r = i && !i[0], n = o && !o[0], r || n) return r ? n ? 0 : -a : s;
							if (s != a) return s;
							if (r = s < 0, n = u == c, !i || !o) return n ? 0 : !i ^ r ? 1 : -1;
							if (!n) return u > c ^ r ? 1 : -1;
							for (a = (u = i.length) < (c = o.length) ? u : c, s = 0; s < a; s++)
								if (i[s] != o[s]) return i[s] > o[s] ^ r ? 1 : -1;
							return u == c ? 0 : u > c ^ r ? 1 : -1
						}

						function w(t, e, r, n) {
							if (t < e || t > r || t !== u(t)) throw Error(c + (n || "Argument") + (
								"number" == typeof t ? t < e || t > r ? " out of range: " :
								" not an integer: " : " not a primitive number: ") + String(
								t))
						}

						function E(t) {
							var e = t.c.length - 1;
							return y(t.e / f) == e && t.c[e] % 2 != 0
						}

						function _(t, e) {
							return (t.length > 1 ? t.charAt(0) + "." + t.slice(1) : t) + (e < 0 ? "e" :
								"e+") + e
						}

						function x(t, e, r) {
							var n, i;
							if (e < 0) {
								for (i = r + "."; ++e; i += r);
								t = i + t
							} else if (++e > (n = t.length)) {
								for (i = r, e -= n; --e; i += r);
								t += i
							} else e < n && (t = t.slice(0, e) + "." + t.slice(e));
							return t
						}
						o = function t(e) {
							var r, n, i, o, A, k, N, S, P, M, O = V.prototype = {
									constructor: V,
									toString: null,
									valueOf: null
								},
								I = new V(1),
								T = 20,
								R = 4,
								C = -7,
								B = 21,
								F = -1e7,
								j = 1e7,
								L = !1,
								U = 1,
								D = 0,
								q = {
									prefix: "",
									groupSize: 3,
									secondaryGroupSize: 0,
									groupSeparator: ",",
									decimalSeparator: ".",
									fractionGroupSize: 0,
									fractionGroupSeparator: " ",
									suffix: ""
								},
								z = "0123456789abcdefghijklmnopqrstuvwxyz",
								G = !0;

							function V(t, e) {
								var r, o, a, c, h, p, m, g, y = this;
								if (!(y instanceof V)) return new V(t, e);
								if (null == e) {
									if (t && !0 === t._isBigNumber) return y.s = t.s, void(!t.c || t
										.e > j ? y.c = y.e = null : t.e < F ? y.c = [y.e =
											0] : (y.e = t.e, y.c = t.c.slice()));
									if ((p = "number" == typeof t) && 0 * t == 0) {
										if (y.s = 1 / t < 0 ? (t = -t, -1) : 1, t === ~~t) {
											for (c = 0, h = t; h >= 10; h /= 10, c++);
											return void(c > j ? y.c = y.e = null : (y.e = c, y.c = [
												t
											]))
										}
										g = String(t)
									} else {
										if (!s.test(g = String(t))) return i(y, g, p);
										y.s = 45 == g.charCodeAt(0) ? (g = g.slice(1), -1) : 1
									}(c = g.indexOf(".")) > -1 && (g = g.replace(".", "")), (h = g
										.search(/e/i)) > 0 ? (c < 0 && (c = h), c += +g.slice(
										h + 1), g = g.substring(0, h)) : c < 0 && (c = g.length)
								} else {
									if (w(e, 2, z.length, "Base"), 10 == e && G) return J(y = new V(
										t), T + y.e + 1, R);
									if (g = String(t), p = "number" == typeof t) {
										if (0 * t != 0) return i(y, g, p, e);
										if (y.s = 1 / t < 0 ? (g = g.slice(1), -1) : 1, V.DEBUG && g
											.replace(/^0\.0*|\./, "").length > 15) throw Error(l +
											t)
									} else y.s = 45 === g.charCodeAt(0) ? (g = g.slice(1), -1) : 1;
									for (r = z.slice(0, e), c = h = 0, m = g.length; h < m; h++)
										if (r.indexOf(o = g.charAt(h)) < 0) {
											if ("." == o) {
												if (h > c) {
													c = m;
													continue
												}
											} else if (!a && (g == g.toUpperCase() && (g = g
													.toLowerCase()) || g == g.toLowerCase() && (
													g = g.toUpperCase()))) {
												a = !0, h = -1, c = 0;
												continue
											}
											return i(y, String(t), p, e)
										} p = !1, (c = (g = n(g, e, 10, y.s)).indexOf(".")) > -1 ?
										g = g.replace(".", "") : c = g.length
								}
								for (h = 0; 48 === g.charCodeAt(h); h++);
								for (m = g.length; 48 === g.charCodeAt(--m););
								if (g = g.slice(h, ++m)) {
									if (m -= h, p && V.DEBUG && m > 15 && (t > d || t !== u(t)))
										throw Error(l + y.s * t);
									if ((c = c - h - 1) > j) y.c = y.e = null;
									else if (c < F) y.c = [y.e = 0];
									else {
										if (y.e = c, y.c = [], h = (c + 1) % f, c < 0 && (h += f),
											h < m) {
											for (h && y.c.push(+g.slice(0, h)), m -= f; h < m;) y.c
												.push(+g.slice(h, h += f));
											h = f - (g = g.slice(h)).length
										} else h -= m;
										for (; h--; g += "0");
										y.c.push(+g)
									}
								} else y.c = [y.e = 0]
							}

							function H(t, e, r, n) {
								var i, o, s, a, u;
								if (null == r ? r = R : w(r, 0, 8), !t.c) return t.toString();
								if (i = t.c[0], s = t.e, null == e) u = v(t.c), u = 1 == n || 2 ==
									n && (s <= C || s >= B) ? _(u, s) : x(u, s, "0");
								else if (o = (t = J(new V(t), e, r)).e, a = (u = v(t.c)).length,
									1 == n || 2 == n && (e <= o || o <= C)) {
									for (; a < e; u += "0", a++);
									u = _(u, o)
								} else if (e -= s, u = x(u, o, "0"), o + 1 > a) {
									if (--e > 0)
										for (u += "."; e--; u += "0");
								} else if ((e += o - a) > 0)
									for (o + 1 == a && (u += "."); e--; u += "0");
								return t.s < 0 && i ? "-" + u : u
							}

							function $(t, e) {
								for (var r, n = 1, i = new V(t[0]); n < t.length; n++) {
									if (!(r = new V(t[n])).s) {
										i = r;
										break
									}
									e.call(i, r) && (i = r)
								}
								return i
							}

							function W(t, e, r) {
								for (var n = 1, i = e.length; !e[--i]; e.pop());
								for (i = e[0]; i >= 10; i /= 10, n++);
								return (r = n + r * f - 1) > j ? t.c = t.e = null : r < F ? t.c = [t
									.e = 0
								] : (t.e = r, t.c = e), t
							}

							function J(t, e, r, n) {
								var i, o, s, c, l, d, m, g = t.c,
									y = p;
								if (g) {
									t: {
										for (i = 1, c = g[0]; c >= 10; c /= 10, i++);
										if ((o = e - i) < 0) o += f,
										s = e,
										m = (l = g[d = 0]) / y[i - s - 1] % 10 | 0;
										else if ((d = a((o + 1) / f)) >= g.length) {
											if (!n) break t;
											for (; g.length <= d; g.push(0));
											l = m = 0, i = 1, s = (o %= f) - f + 1
										} else {
											for (l = c = g[d], i = 1; c >= 10; c /= 10, i++);
											m = (s = (o %= f) - f + i) < 0 ? 0 : l / y[i - s - 1] %
												10 | 0
										}
										if (n = n || e < 0 || null != g[d + 1] || (s < 0 ? l : l %
												y[i - s - 1]), n = r < 4 ? (m || n) && (0 == r ||
												r == (t.s < 0 ? 3 : 2)) : m > 5 || 5 == m && (4 ==
												r || n || 6 == r && (o > 0 ? s > 0 ? l / y[i - s] :
													0 : g[d - 1]) % 10 & 1 || r == (t.s < 0 ? 8 : 7)
												), e < 1 || !g[0]) return g.length = 0,
										n ? (e -= t.e + 1, g[0] = y[(f - e % f) % f], t.e = -e ||
										0) : g[0] = t.e = 0,
										t;
										if (0 == o ? (g.length = d, c = 1, d--) : (g.length = d + 1,
												c = y[f - o], g[d] = s > 0 ? u(l / y[i - s] % y[
												s]) * c : 0), n)
											for (;;) {
												if (0 == d) {
													for (o = 1, s = g[0]; s >= 10; s /= 10, o++);
													for (s = g[0] += c, c = 1; s >= 10; s /= 10,
														c++);
													o != c && (t.e++, g[0] == h && (g[0] = 1));
													break
												}
												if (g[d] += c, g[d] != h) break;
												g[d--] = 0, c = 1
											}
										for (o = g.length; 0 === g[--o]; g.pop());
									}
									t.e > j ? t.c = t.e = null : t.e < F && (t.c = [t.e = 0])
								}
								return t
							}

							function X(t) {
								var e, r = t.e;
								return null === r ? t.toString() : (e = v(t.c), e = r <= C || r >=
									B ? _(e, r) : x(e, r, "0"), t.s < 0 ? "-" + e : e)
							}
							return V.clone = t, V.ROUND_UP = 0, V.ROUND_DOWN = 1, V.ROUND_CEIL = 2,
								V.ROUND_FLOOR = 3, V.ROUND_HALF_UP = 4, V.ROUND_HALF_DOWN = 5, V
								.ROUND_HALF_EVEN = 6, V.ROUND_HALF_CEIL = 7, V.ROUND_HALF_FLOOR = 8,
								V.EUCLID = 9, V.config = V.set = function(t) {
									var e, r;
									if (null != t) {
										if ("object" != typeof t) throw Error(c +
											"Object expected: " + t);
										if (t.hasOwnProperty(e = "DECIMAL_PLACES") && (w(r = t[e],
												0, g, e), T = r), t.hasOwnProperty(e =
												"ROUNDING_MODE") && (w(r = t[e], 0, 8, e), R = r), t
											.hasOwnProperty(e = "EXPONENTIAL_AT") && ((r = t[e]) &&
												r.pop ? (w(r[0], -g, 0, e), w(r[1], 0, g, e), C = r[
													0], B = r[1]) : (w(r, -g, g, e), C = -(B = r <
													0 ? -r : r))), t.hasOwnProperty(e = "RANGE"))
											if ((r = t[e]) && r.pop) w(r[0], -g, -1, e), w(r[1], 1,
												g, e), F = r[0], j = r[1];
											else {
												if (w(r, -g, g, e), !r) throw Error(c + e +
													" cannot be zero: " + r);
												F = -(j = r < 0 ? -r : r)
											} if (t.hasOwnProperty(e = "CRYPTO")) {
											if ((r = t[e]) !== !!r) throw Error(c + e +
												" not true or false: " + r);
											if (r) {
												if ("undefined" == typeof crypto || !crypto || !
													crypto.getRandomValues && !crypto.randomBytes)
													throw L = !r, Error(c + "crypto unavailable");
												L = r
											} else L = r
										}
										if (t.hasOwnProperty(e = "MODULO_MODE") && (w(r = t[e], 0,
												9, e), U = r), t.hasOwnProperty(e =
											"POW_PRECISION") && (w(r = t[e], 0, g, e), D = r), t
											.hasOwnProperty(e = "FORMAT")) {
											if ("object" != typeof(r = t[e])) throw Error(c + e +
												" not an object: " + r);
											q = r
										}
										if (t.hasOwnProperty(e = "ALPHABET")) {
											if ("string" != typeof(r = t[e]) ||
												/^.?$|[+\-.\s]|(.).*\1/.test(r)) throw Error(c + e +
												" invalid: " + r);
											G = "0123456789" == r.slice(0, 10), z = r
										}
									}
									return {
										DECIMAL_PLACES: T,
										ROUNDING_MODE: R,
										EXPONENTIAL_AT: [C, B],
										RANGE: [F, j],
										CRYPTO: L,
										MODULO_MODE: U,
										POW_PRECISION: D,
										FORMAT: q,
										ALPHABET: z
									}
								}, V.isBigNumber = function(t) {
									if (!t || !0 !== t._isBigNumber) return !1;
									if (!V.DEBUG) return !0;
									var e, r, n = t.c,
										i = t.e,
										o = t.s;
									t: if ("[object Array]" == {}.toString.call(n)) {
										if ((1 === o || -1 === o) && i >= -g && i <= g && i ===
											u(i)) {
											if (0 === n[0]) {
												if (0 === i && 1 === n.length) return !0;
												break t
											}
											if ((e = (i + 1) % f) < 1 && (e += f), String(n[0])
												.length == e) {
												for (e = 0; e < n.length; e++)
													if ((r = n[e]) < 0 || r >= h || r !== u(r))
														break t;
												if (0 !== r) return !0
											}
										}
									} else if (null === n && null === i && (null === o || 1 === o ||
											-1 === o)) return !0;
									throw Error(c + "Invalid BigNumber: " + t)
								}, V.maximum = V.max = function() {
									return $(arguments, O.lt)
								}, V.minimum = V.min = function() {
									return $(arguments, O.gt)
								}, V.random = (o = 9007199254740992, A = Math.random() * o &
									2097151 ? function() {
										return u(Math.random() * o)
									} : function() {
										return 8388608 * (1073741824 * Math.random() | 0) + (
											8388608 * Math.random() | 0)
									},
									function(t) {
										var e, r, n, i, o, s = 0,
											l = [],
											h = new V(I);
										if (null == t ? t = T : w(t, 0, g), i = a(t / f), L)
											if (crypto.getRandomValues) {
												for (e = crypto.getRandomValues(new Uint32Array(i *=
														2)); s < i;)(o = 131072 * e[s] + (e[s +
													1] >>> 11)) >= 9e15 ? (r = crypto
													.getRandomValues(new Uint32Array(2)), e[s] =
													r[0], e[s + 1] = r[1]) : (l.push(o % 1e14),
													s += 2);
												s = i / 2
											} else {
												if (!crypto.randomBytes) throw L = !1, Error(c +
													"crypto unavailable");
												for (e = crypto.randomBytes(i *= 7); s < i;)(o =
														281474976710656 * (31 & e[s]) +
														1099511627776 * e[s + 1] + 4294967296 * e[
															s + 2] + 16777216 * e[s + 3] + (e[s +
															4] << 16) + (e[s + 5] << 8) + e[s + 6]
														) >= 9e15 ? crypto.randomBytes(7).copy(e,
													s) : (l.push(o % 1e14), s += 7);
												s = i / 7
											} if (!L)
											for (; s < i;)(o = A()) < 9e15 && (l[s++] = o % 1e14);
										for (i = l[--s], t %= f, i && t && (o = p[f - t], l[s] = u(
												i / o) * o); 0 === l[s]; l.pop(), s--);
										if (s < 0) l = [n = 0];
										else {
											for (n = -1; 0 === l[0]; l.splice(0, 1), n -= f);
											for (s = 1, o = l[0]; o >= 10; o /= 10, s++);
											s < f && (n -= f - s)
										}
										return h.e = n, h.c = l, h
									}), V.sum = function() {
									for (var t = 1, e = arguments, r = new V(e[0]); t < e.length;)
										r = r.plus(e[t++]);
									return r
								}, n = function() {
									var t = "0123456789";

									function e(t, e, r, n) {
										for (var i, o, s = [0], a = 0, u = t.length; a < u;) {
											for (o = s.length; o--; s[o] *= e);
											for (s[0] += n.indexOf(t.charAt(a++)), i = 0; i < s
												.length; i++) s[i] > r - 1 && (null == s[i + 1] && (
												s[i + 1] = 0), s[i + 1] += s[i] / r | 0, s[
												i] %= r)
										}
										return s.reverse()
									}
									return function(n, i, o, s, a) {
										var u, c, l, h, f, d, p, m, g = n.indexOf("."),
											y = T,
											b = R;
										for (g >= 0 && (h = D, D = 0, n = n.replace(".", ""),
												d = (m = new V(i)).pow(n.length - g), D = h, m
												.c = e(x(v(d.c), d.e, "0"), 10, o, t), m.e = m.c
												.length), l = h = (p = e(n, i, o, a ? (u = z,
												t) : (u = t, z))).length; 0 == p[--h]; p.pop());
										if (!p[0]) return u.charAt(0);
										if (g < 0 ? --l : (d.c = p, d.e = l, d.s = s, p = (d =
												r(d, m, y, b, o)).c, f = d.r, l = d.e), g = p[
												c = l + y + 1], h = o / 2, f = f || c < 0 ||
											null != p[c + 1], f = b < 4 ? (null != g || f) && (
												0 == b || b == (d.s < 0 ? 3 : 2)) : g > h ||
											g == h && (4 == b || f || 6 == b && 1 & p[c - 1] ||
												b == (d.s < 0 ? 8 : 7)), c < 1 || !p[0]) n = f ?
											x(u.charAt(1), -y, u.charAt(0)) : u.charAt(0);
										else {
											if (p.length = c, f)
												for (--o; ++p[--c] > o;) p[c] = 0, c || (++l,
													p = [1].concat(p));
											for (h = p.length; !p[--h];);
											for (g = 0, n = ""; g <= h; n += u.charAt(p[g++]));
											n = x(n, l, u.charAt(0))
										}
										return n
									}
								}(), r = function() {
									function t(t, e, r) {
										var n, i, o, s, a = 0,
											u = t.length,
											c = e % m,
											l = e / m | 0;
										for (t = t.slice(); u--;) a = ((i = c * (o = t[u] % m) + (
												n = l * o + (s = t[u] / m | 0) * c) % m *
											m + a) / r | 0) + (n / m | 0) + l * s, t[u] = i % r;
										return a && (t = [a].concat(t)), t
									}

									function e(t, e, r, n) {
										var i, o;
										if (r != n) o = r > n ? 1 : -1;
										else
											for (i = o = 0; i < r; i++)
												if (t[i] != e[i]) {
													o = t[i] > e[i] ? 1 : -1;
													break
												} return o
									}

									function r(t, e, r, n) {
										for (var i = 0; r--;) t[r] -= i, i = t[r] < e[r] ? 1 : 0, t[
											r] = i * n + t[r] - e[r];
										for (; !t[0] && t.length > 1; t.splice(0, 1));
									}
									return function(n, i, o, s, a) {
										var c, l, d, p, m, g, v, b, w, E, _, x, A, k, N, S, P,
											M = n.s == i.s ? 1 : -1,
											O = n.c,
											I = i.c;
										if (!(O && O[0] && I && I[0])) return new V(n.s && i
											.s && (O ? !I || O[0] != I[0] : I) ? O &&
											0 == O[0] || !I ? 0 * M : M / 0 : NaN);
										for (w = (b = new V(M)).c = [], M = o + (l = n.e - i
											.e) + 1, a || (a = h, l = y(n.e / f) - y(i.e / f),
												M = M / f | 0), d = 0; I[d] == (O[d] || 0); d++)
										;
										if (I[d] > (O[d] || 0) && l--, M < 0) w.push(1), p = !0;
										else {
											for (k = O.length, S = I.length, d = 0, M += 2, (m =
													u(a / (I[0] + 1))) > 1 && (I = t(I, m, a),
													O = t(O, m, a), S = I.length, k = O.length),
												A = S, _ = (E = O.slice(0, S)).length; _ < S; E[
													_++] = 0);
											P = I.slice(), P = [0].concat(P), N = I[0], I[1] >=
												a / 2 && N++;
											do {
												if (m = 0, (c = e(I, E, S, _)) < 0) {
													if (x = E[0], S != _ && (x = x * a + (E[
															1] || 0)), (m = u(x / N)) > 1)
														for (m >= a && (m = a - 1), v = (g = t(
																I, m, a)).length, _ = E
															.length; 1 == e(g, E, v, _);) m--,
															r(g, S < v ? P : I, v, a), v = g
															.length, c = 1;
													else 0 == m && (c = m = 1), v = (g = I
														.slice()).length;
													if (v < _ && (g = [0].concat(g)), r(E, g, _,
															a), _ = E.length, -1 == c)
														for (; e(I, E, S, _) < 1;) m++, r(E, S <
															_ ? P : I, _, a), _ = E.length
												} else 0 === c && (m++, E = [0]);
												w[d++] = m, E[0] ? E[_++] = O[A] || 0 : (E = [O[
													A]], _ = 1)
											} while ((A++ < k || null != E[0]) && M--);
											p = null != E[0], w[0] || w.splice(0, 1)
										}
										if (a == h) {
											for (d = 1, M = w[0]; M >= 10; M /= 10, d++);
											J(b, o + (b.e = d + l * f - 1) + 1, s, p)
										} else b.e = l, b.r = +p;
										return b
									}
								}(), k = /^(-?)0([xbo])(?=\w[\w.]*$)/i, N = /^([^.]+)\.$/, S =
								/^\.([^.]+)$/, P = /^-?(Infinity|NaN)$/, M =
								/^\s*\+(?=[\w.])|^\s+|\s+$/g, i = function(t, e, r, n) {
									var i, o = r ? e : e.replace(M, "");
									if (P.test(o)) t.s = isNaN(o) ? null : o < 0 ? -1 : 1;
									else {
										if (!r && (o = o.replace(k, (function(t, e, r) {
												return i = "x" == (r = r
												.toLowerCase()) ? 16 : "b" == r ? 2 : 8,
													n && n != i ? t : e
											})), n && (i = n, o = o.replace(N, "$1").replace(S,
												"0.$1")), e != o)) return new V(o, i);
										if (V.DEBUG) throw Error(c + "Not a" + (n ? " base " + n :
											"") + " number: " + e);
										t.s = null
									}
									t.c = t.e = null
								}, O.absoluteValue = O.abs = function() {
									var t = new V(this);
									return t.s < 0 && (t.s = 1), t
								}, O.comparedTo = function(t, e) {
									return b(this, new V(t, e))
								}, O.decimalPlaces = O.dp = function(t, e) {
									var r, n, i, o = this;
									if (null != t) return w(t, 0, g), null == e ? e = R : w(e, 0,
										8), J(new V(o), t + o.e + 1, e);
									if (!(r = o.c)) return null;
									if (n = ((i = r.length - 1) - y(this.e / f)) * f, i = r[i])
										for (; i % 10 == 0; i /= 10, n--);
									return n < 0 && (n = 0), n
								}, O.dividedBy = O.div = function(t, e) {
									return r(this, new V(t, e), T, R)
								}, O.dividedToIntegerBy = O.idiv = function(t, e) {
									return r(this, new V(t, e), 0, 1)
								}, O.exponentiatedBy = O.pow = function(t, e) {
									var r, n, i, o, s, l, h, d, p = this;
									if ((t = new V(t)).c && !t.isInteger()) throw Error(c +
										"Exponent not an integer: " + X(t));
									if (null != e && (e = new V(e)), s = t.e > 14, !p.c || !p.c[
										0] || 1 == p.c[0] && !p.e && 1 == p.c.length || !t.c || !t
										.c[0]) return d = new V(Math.pow(+X(p), s ? 2 - E(t) : +X(
										t))), e ? d.mod(e) : d;
									if (l = t.s < 0, e) {
										if (e.c ? !e.c[0] : !e.s) return new V(NaN);
										(n = !l && p.isInteger() && e.isInteger()) && (p = p.mod(e))
									} else {
										if (t.e > 9 && (p.e > 0 || p.e < -1 || (0 == p.e ? p.c[0] >
												1 || s && p.c[1] >= 24e7 : p.c[0] < 8e13 || s &&
												p.c[0] <= 9999975e7))) return o = p.s < 0 && E(t) ?
											-0 : 0, p.e > -1 && (o = 1 / o), new V(l ? 1 / o :
												o);
										D && (o = a(D / f + 2))
									}
									for (s ? (r = new V(.5), l && (t.s = 1), h = E(t)) : h = (i =
											Math.abs(+X(t))) % 2, d = new V(I);;) {
										if (h) {
											if (!(d = d.times(p)).c) break;
											o ? d.c.length > o && (d.c.length = o) : n && (d = d
												.mod(e))
										}
										if (i) {
											if (0 === (i = u(i / 2))) break;
											h = i % 2
										} else if (J(t = t.times(r), t.e + 1, 1), t.e > 14) h = E(
										t);
										else {
											if (0 === (i = +X(t))) break;
											h = i % 2
										}
										p = p.times(p), o ? p.c && p.c.length > o && (p.c.length =
											o) : n && (p = p.mod(e))
									}
									return n ? d : (l && (d = I.div(d)), e ? d.mod(e) : o ? J(d, D,
										R, undefined) : d)
								}, O.integerValue = function(t) {
									var e = new V(this);
									return null == t ? t = R : w(t, 0, 8), J(e, e.e + 1, t)
								}, O.isEqualTo = O.eq = function(t, e) {
									return 0 === b(this, new V(t, e))
								}, O.isFinite = function() {
									return !!this.c
								}, O.isGreaterThan = O.gt = function(t, e) {
									return b(this, new V(t, e)) > 0
								}, O.isGreaterThanOrEqualTo = O.gte = function(t, e) {
									return 1 === (e = b(this, new V(t, e))) || 0 === e
								}, O.isInteger = function() {
									return !!this.c && y(this.e / f) > this.c.length - 2
								}, O.isLessThan = O.lt = function(t, e) {
									return b(this, new V(t, e)) < 0
								}, O.isLessThanOrEqualTo = O.lte = function(t, e) {
									return -1 === (e = b(this, new V(t, e))) || 0 === e
								}, O.isNaN = function() {
									return !this.s
								}, O.isNegative = function() {
									return this.s < 0
								}, O.isPositive = function() {
									return this.s > 0
								}, O.isZero = function() {
									return !!this.c && 0 == this.c[0]
								}, O.minus = function(t, e) {
									var r, n, i, o, s = this,
										a = s.s;
									if (e = (t = new V(t, e)).s, !a || !e) return new V(NaN);
									if (a != e) return t.s = -e, s.plus(t);
									var u = s.e / f,
										c = t.e / f,
										l = s.c,
										d = t.c;
									if (!u || !c) {
										if (!l || !d) return l ? (t.s = -e, t) : new V(d ? s : NaN);
										if (!l[0] || !d[0]) return d[0] ? (t.s = -e, t) : new V(l[
											0] ? s : 3 == R ? -0 : 0)
									}
									if (u = y(u), c = y(c), l = l.slice(), a = u - c) {
										for ((o = a < 0) ? (a = -a, i = l) : (c = u, i = d), i
											.reverse(), e = a; e--; i.push(0));
										i.reverse()
									} else
										for (n = (o = (a = l.length) < (e = d.length)) ? a : e, a =
											e = 0; e < n; e++)
											if (l[e] != d[e]) {
												o = l[e] < d[e];
												break
											} if (o && (i = l, l = d, d = i, t.s = -t.s), (e = (n =
											d.length) - (r = l.length)) > 0)
										for (; e--; l[r++] = 0);
									for (e = h - 1; n > a;) {
										if (l[--n] < d[n]) {
											for (r = n; r && !l[--r]; l[r] = e);
											--l[r], l[n] += h
										}
										l[n] -= d[n]
									}
									for (; 0 == l[0]; l.splice(0, 1), --c);
									return l[0] ? W(t, l, c) : (t.s = 3 == R ? -1 : 1, t.c = [t.e =
										0
									], t)
								}, O.modulo = O.mod = function(t, e) {
									var n, i, o = this;
									return t = new V(t, e), !o.c || !t.s || t.c && !t.c[0] ? new V(
										NaN) : !t.c || o.c && !o.c[0] ? new V(o) : (9 == U ? (
										i = t.s, t.s = 1, n = r(o, t, 0, 3), t.s = i, n.s *=
										i) : n = r(o, t, 0, U), (t = o.minus(n.times(t))).c[
										0] || 1 != U || (t.s = o.s), t)
								}, O.multipliedBy = O.times = function(t, e) {
									var r, n, i, o, s, a, u, c, l, d, p, g, v, b, w, E = this,
										_ = E.c,
										x = (t = new V(t, e)).c;
									if (!(_ && x && _[0] && x[0])) return !E.s || !t.s || _ && !_[
										0] && !x || x && !x[0] && !_ ? t.c = t.e = t.s = null :
										(t.s *= E.s, _ && x ? (t.c = [0], t.e = 0) : t.c = t.e =
											null), t;
									for (n = y(E.e / f) + y(t.e / f), t.s *= E.s, (u = _.length) < (
											d = x.length) && (v = _, _ = x, x = v, i = u, u = d, d =
											i), i = u + d, v = []; i--; v.push(0));
									for (b = h, w = m, i = d; --i >= 0;) {
										for (r = 0, p = x[i] % w, g = x[i] / w | 0, o = i + (s =
											u); o > i;) r = ((c = p * (c = _[--s] % w) + (a = g *
												c + (l = _[s] / w | 0) * p) % w * w + v[o] +
											r) / b | 0) + (a / w | 0) + g * l, v[o--] = c % b;
										v[o] = r
									}
									return r ? ++n : v.splice(0, 1), W(t, v, n)
								}, O.negated = function() {
									var t = new V(this);
									return t.s = -t.s || null, t
								}, O.plus = function(t, e) {
									var r, n = this,
										i = n.s;
									if (e = (t = new V(t, e)).s, !i || !e) return new V(NaN);
									if (i != e) return t.s = -e, n.minus(t);
									var o = n.e / f,
										s = t.e / f,
										a = n.c,
										u = t.c;
									if (!o || !s) {
										if (!a || !u) return new V(i / 0);
										if (!a[0] || !u[0]) return u[0] ? t : new V(a[0] ? n : 0 *
											i)
									}
									if (o = y(o), s = y(s), a = a.slice(), i = o - s) {
										for (i > 0 ? (s = o, r = u) : (i = -i, r = a), r
										.reverse(); i--; r.push(0));
										r.reverse()
									}
									for ((i = a.length) - (e = u.length) < 0 && (r = u, u = a, a =
											r, e = i), i = 0; e;) i = (a[--e] = a[e] + u[e] + i) /
										h | 0, a[e] = h === a[e] ? 0 : a[e] % h;
									return i && (a = [i].concat(a), ++s), W(t, a, s)
								}, O.precision = O.sd = function(t, e) {
									var r, n, i, o = this;
									if (null != t && t !== !!t) return w(t, 1, g), null == e ? e =
										R : w(e, 0, 8), J(new V(o), t, e);
									if (!(r = o.c)) return null;
									if (n = (i = r.length - 1) * f + 1, i = r[i]) {
										for (; i % 10 == 0; i /= 10, n--);
										for (i = r[0]; i >= 10; i /= 10, n++);
									}
									return t && o.e + 1 > n && (n = o.e + 1), n
								}, O.shiftedBy = function(t) {
									return w(t, -9007199254740991, d), this.times("1e" + t)
								}, O.squareRoot = O.sqrt = function() {
									var t, e, n, i, o, s = this,
										a = s.c,
										u = s.s,
										c = s.e,
										l = T + 4,
										h = new V("0.5");
									if (1 !== u || !a || !a[0]) return new V(!u || u < 0 && (!a ||
										a[0]) ? NaN : a ? s : 1 / 0);
									if (0 == (u = Math.sqrt(+X(s))) || u == 1 / 0 ? (((e = v(a))
												.length + c) % 2 == 0 && (e += "0"), u = Math.sqrt(+
												e), c = y((c + 1) / 2) - (c < 0 || c % 2), n =
											new V(e = u == 1 / 0 ? "5e" + c : (e = u
											.toExponential()).slice(0, e.indexOf("e") + 1) + c)) :
										n = new V(u + ""), n.c[0])
										for ((u = (c = n.e) + l) < 3 && (u = 0);;)
											if (o = n, n = h.times(o.plus(r(s, o, l, 1))), v(o.c)
												.slice(0, u) === (e = v(n.c)).slice(0, u)) {
												if (n.e < c && --u, "9999" != (e = e.slice(u - 3,
														u + 1)) && (i || "4999" != e)) {
													+e && (+e.slice(1) || "5" != e.charAt(0)) || (J(
															n, n.e + T + 2, 1), t = !n.times(n)
														.eq(s));
													break
												}
												if (!i && (J(o, o.e + T + 2, 0), o.times(o).eq(
													s))) {
													n = o;
													break
												}
												l += 4, u += 4, i = 1
											} return J(n, n.e + T + 1, R, t)
								}, O.toExponential = function(t, e) {
									return null != t && (w(t, 0, g), t++), H(this, t, e, 1)
								}, O.toFixed = function(t, e) {
									return null != t && (w(t, 0, g), t = t + this.e + 1), H(this, t,
										e)
								}, O.toFormat = function(t, e, r) {
									var n, i = this;
									if (null == r) null != t && e && "object" == typeof e ? (r = e,
										e = null) : t && "object" == typeof t ? (r = t, t = e =
										null) : r = q;
									else if ("object" != typeof r) throw Error(c +
										"Argument not an object: " + r);
									if (n = i.toFixed(t, e), i.c) {
										var o, s = n.split("."),
											a = +r.groupSize,
											u = +r.secondaryGroupSize,
											l = r.groupSeparator || "",
											h = s[0],
											f = s[1],
											d = i.s < 0,
											p = d ? h.slice(1) : h,
											m = p.length;
										if (u && (o = a, a = u, u = o, m -= o), a > 0 && m > 0) {
											for (o = m % a || a, h = p.substr(0, o); o < m; o += a)
												h += l + p.substr(o, a);
											u > 0 && (h += l + p.slice(o)), d && (h = "-" + h)
										}
										n = f ? h + (r.decimalSeparator || "") + ((u = +r
											.fractionGroupSize) ? f.replace(new RegExp(
											"\\d{" + u + "}\\B", "g"), "$&" + (r
											.fractionGroupSeparator || "")) : f) : h
									}
									return (r.prefix || "") + n + (r.suffix || "")
								}, O.toFraction = function(t) {
									var e, n, i, o, s, a, u, l, h, d, m, g, y = this,
										b = y.c;
									if (null != t && (!(u = new V(t)).isInteger() && (u.c || 1 !== u
											.s) || u.lt(I))) throw Error(c + "Argument " + (u
										.isInteger() ? "out of range: " :
										"not an integer: ") + X(u));
									if (!b) return new V(y);
									for (e = new V(I), h = n = new V(I), i = l = new V(I), g = v(b),
										s = e.e = g.length - y.e - 1, e.c[0] = p[(a = s % f) < 0 ?
											f + a : a], t = !t || u.comparedTo(e) > 0 ? s > 0 ? e :
										h : u, a = j, j = 1 / 0, u = new V(g), l.c[0] = 0; d = r(u,
											e, 0, 1), 1 != (o = n.plus(d.times(i))).comparedTo(t);)
										n = i, i = o, h = l.plus(d.times(o = h)), l = o, e = u
										.minus(d.times(o = e)), u = o;
									return o = r(t.minus(n), i, 0, 1), l = l.plus(o.times(h)), n = n
										.plus(o.times(i)), l.s = h.s = y.s, m = r(h, i, s *= 2, R)
										.minus(y).abs().comparedTo(r(l, n, s, R).minus(y).abs()) <
										1 ? [h, i] : [l, n], j = a, m
								}, O.toNumber = function() {
									return +X(this)
								}, O.toPrecision = function(t, e) {
									return null != t && w(t, 1, g), H(this, t, e, 2)
								}, O.toString = function(t) {
									var e, r = this,
										i = r.s,
										o = r.e;
									return null === o ? i ? (e = "Infinity", i < 0 && (e = "-" +
										e)) : e = "NaN" : (null == t ? e = o <= C || o >= B ? _(v(r
												.c), o) : x(v(r.c), o, "0") : 10 === t && G ? e = x(
												v((r = J(new V(r), T + o + 1, R)).c), r.e, "0") : (
												w(t, 2, z.length, "Base"), e = n(x(v(r.c), o, "0"),
													10, t, i, !0)), i < 0 && r.c[0] && (e = "-" +
											e)), e
								}, O.valueOf = O.toJSON = function() {
									return X(this)
								}, O._isBigNumber = !0, null != e && V.set(e), V
						}(), o.default = o.BigNumber = o, void 0 === (n = function() {
							return o
						}.call(e, r, e, t)) || (t.exports = n)
					}()
				},
				3550: function(t, e, r) {
					! function(t, e) {
						"use strict";

						function n(t, e) {
							if (!t) throw new Error(e || "Assertion failed")
						}

						function i(t, e) {
							t.super_ = e;
							var r = function() {};
							r.prototype = e.prototype, t.prototype = new r, t.prototype.constructor = t
						}

						function o(t, e, r) {
							if (o.isBN(t)) return t;
							this.negative = 0, this.words = null, this.length = 0, this.red = null,
								null !== t && ("le" !== e && "be" !== e || (r = e, e = 10), this._init(
									t || 0, e || 10, r || "be"))
						}
						var s;
						"object" == typeof t ? t.exports = o : e.BN = o, o.BN = o, o.wordSize = 26;
						try {
							s = "undefined" != typeof window && void 0 !== window.Buffer ? window
								.Buffer : r(6601).Buffer
						} catch (t) {}

						function a(t, e) {
							var r = t.charCodeAt(e);
							return r >= 65 && r <= 70 ? r - 55 : r >= 97 && r <= 102 ? r - 87 : r - 48 &
								15
						}

						function u(t, e, r) {
							var n = a(t, r);
							return r - 1 >= e && (n |= a(t, r - 1) << 4), n
						}

						function c(t, e, r, n) {
							for (var i = 0, o = Math.min(t.length, r), s = e; s < o; s++) {
								var a = t.charCodeAt(s) - 48;
								i *= n, i += a >= 49 ? a - 49 + 10 : a >= 17 ? a - 17 + 10 : a
							}
							return i
						}
						o.isBN = function(t) {
							return t instanceof o || null !== t && "object" == typeof t && t
								.constructor.wordSize === o.wordSize && Array.isArray(t.words)
						}, o.max = function(t, e) {
							return t.cmp(e) > 0 ? t : e
						}, o.min = function(t, e) {
							return t.cmp(e) < 0 ? t : e
						}, o.prototype._init = function(t, e, r) {
							if ("number" == typeof t) return this._initNumber(t, e, r);
							if ("object" == typeof t) return this._initArray(t, e, r);
							"hex" === e && (e = 16), n(e === (0 | e) && e >= 2 && e <= 36);
							var i = 0;
							"-" === (t = t.toString().replace(/\s+/g, ""))[0] && (i++, this
								.negative = 1), i < t.length && (16 === e ? this._parseHex(t, i,
								r) : (this._parseBase(t, e, i), "le" === r && this._initArray(
									this.toArray(), e, r)))
						}, o.prototype._initNumber = function(t, e, r) {
							t < 0 && (this.negative = 1, t = -t), t < 67108864 ? (this.words = [
								67108863 & t
							], this.length = 1) : t < 4503599627370496 ? (this.words = [
								67108863 & t, t / 67108864 & 67108863
							], this.length = 2) : (n(t < 9007199254740992), this.words = [
								67108863 & t, t / 67108864 & 67108863, 1
							], this.length = 3), "le" === r && this._initArray(this.toArray(),
								e, r)
						}, o.prototype._initArray = function(t, e, r) {
							if (n("number" == typeof t.length), t.length <= 0) return this.words = [
								0
							], this.length = 1, this;
							this.length = Math.ceil(t.length / 3), this.words = new Array(this
								.length);
							for (var i = 0; i < this.length; i++) this.words[i] = 0;
							var o, s, a = 0;
							if ("be" === r)
								for (i = t.length - 1, o = 0; i >= 0; i -= 3) s = t[i] | t[i - 1] <<
									8 | t[i - 2] << 16, this.words[o] |= s << a & 67108863, this
									.words[o + 1] = s >>> 26 - a & 67108863, (a += 24) >= 26 && (
										a -= 26, o++);
							else if ("le" === r)
								for (i = 0, o = 0; i < t.length; i += 3) s = t[i] | t[i + 1] << 8 |
									t[i + 2] << 16, this.words[o] |= s << a & 67108863, this.words[
										o + 1] = s >>> 26 - a & 67108863, (a += 24) >= 26 && (a -=
										26, o++);
							return this.strip()
						}, o.prototype._parseHex = function(t, e, r) {
							this.length = Math.ceil((t.length - e) / 6), this.words = new Array(this
								.length);
							for (var n = 0; n < this.length; n++) this.words[n] = 0;
							var i, o = 0,
								s = 0;
							if ("be" === r)
								for (n = t.length - 1; n >= e; n -= 2) i = u(t, e, n) << o, this
									.words[s] |= 67108863 & i, o >= 18 ? (o -= 18, s += 1, this
										.words[s] |= i >>> 26) : o += 8;
							else
								for (n = (t.length - e) % 2 == 0 ? e + 1 : e; n < t.length; n += 2)
									i = u(t, e, n) << o, this.words[s] |= 67108863 & i, o >= 18 ? (
										o -= 18, s += 1, this.words[s] |= i >>> 26) : o += 8;
							this.strip()
						}, o.prototype._parseBase = function(t, e, r) {
							this.words = [0], this.length = 1;
							for (var n = 0, i = 1; i <= 67108863; i *= e) n++;
							n--, i = i / e | 0;
							for (var o = t.length - r, s = o % n, a = Math.min(o, o - s) + r, u = 0,
									l = r; l < a; l += n) u = c(t, l, l + n, e), this.imuln(i), this
								.words[0] + u < 67108864 ? this.words[0] += u : this._iaddn(u);
							if (0 !== s) {
								var h = 1;
								for (u = c(t, l, t.length, e), l = 0; l < s; l++) h *= e;
								this.imuln(h), this.words[0] + u < 67108864 ? this.words[0] += u :
									this._iaddn(u)
							}
							this.strip()
						}, o.prototype.copy = function(t) {
							t.words = new Array(this.length);
							for (var e = 0; e < this.length; e++) t.words[e] = this.words[e];
							t.length = this.length, t.negative = this.negative, t.red = this.red
						}, o.prototype.clone = function() {
							var t = new o(null);
							return this.copy(t), t
						}, o.prototype._expand = function(t) {
							for (; this.length < t;) this.words[this.length++] = 0;
							return this
						}, o.prototype.strip = function() {
							for (; this.length > 1 && 0 === this.words[this.length - 1];) this
								.length--;
							return this._normSign()
						}, o.prototype._normSign = function() {
							return 1 === this.length && 0 === this.words[0] && (this.negative = 0),
								this
						}, o.prototype.inspect = function() {
							return (this.red ? "<BN-R: " : "<BN: ") + this.toString(16) + ">"
						};
						var l = ["", "0", "00", "000", "0000", "00000", "000000", "0000000", "00000000",
								"000000000", "0000000000", "00000000000", "000000000000",
								"0000000000000", "00000000000000", "000000000000000",
								"0000000000000000", "00000000000000000", "000000000000000000",
								"0000000000000000000", "00000000000000000000", "000000000000000000000",
								"0000000000000000000000", "00000000000000000000000",
								"000000000000000000000000", "0000000000000000000000000"
							],
							h = [0, 0, 25, 16, 12, 11, 10, 9, 8, 8, 7, 7, 7, 7, 6, 6, 6, 6, 6, 6, 6, 5,
								5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5
							],
							f = [0, 0, 33554432, 43046721, 16777216, 48828125, 60466176, 40353607,
								16777216, 43046721, 1e7, 19487171, 35831808, 62748517, 7529536,
								11390625, 16777216, 24137569, 34012224, 47045881, 64e6, 4084101,
								5153632, 6436343, 7962624, 9765625, 11881376, 14348907, 17210368,
								20511149, 243e5, 28629151, 33554432, 39135393, 45435424, 52521875,
								60466176
							];

						function d(t, e, r) {
							r.negative = e.negative ^ t.negative;
							var n = t.length + e.length | 0;
							r.length = n, n = n - 1 | 0;
							var i = 0 | t.words[0],
								o = 0 | e.words[0],
								s = i * o,
								a = 67108863 & s,
								u = s / 67108864 | 0;
							r.words[0] = a;
							for (var c = 1; c < n; c++) {
								for (var l = u >>> 26, h = 67108863 & u, f = Math.min(c, e.length - 1),
										d = Math.max(0, c - t.length + 1); d <= f; d++) {
									var p = c - d | 0;
									l += (s = (i = 0 | t.words[p]) * (o = 0 | e.words[d]) + h) /
										67108864 | 0, h = 67108863 & s
								}
								r.words[c] = 0 | h, u = 0 | l
							}
							return 0 !== u ? r.words[c] = 0 | u : r.length--, r.strip()
						}
						o.prototype.toString = function(t, e) {
							var r;
							if (e = 0 | e || 1, 16 === (t = t || 10) || "hex" === t) {
								r = "";
								for (var i = 0, o = 0, s = 0; s < this.length; s++) {
									var a = this.words[s],
										u = (16777215 & (a << i | o)).toString(16);
									r = 0 !== (o = a >>> 24 - i & 16777215) || s !== this.length -
										1 ? l[6 - u.length] + u + r : u + r, (i += 2) >= 26 && (i -=
											26, s--)
								}
								for (0 !== o && (r = o.toString(16) + r); r.length % e != 0;) r =
									"0" + r;
								return 0 !== this.negative && (r = "-" + r), r
							}
							if (t === (0 | t) && t >= 2 && t <= 36) {
								var c = h[t],
									d = f[t];
								r = "";
								var p = this.clone();
								for (p.negative = 0; !p.isZero();) {
									var m = p.modn(d).toString(t);
									r = (p = p.idivn(d)).isZero() ? m + r : l[c - m.length] + m + r
								}
								for (this.isZero() && (r = "0" + r); r.length % e != 0;) r = "0" +
								r;
								return 0 !== this.negative && (r = "-" + r), r
							}
							n(!1, "Base should be between 2 and 36")
						}, o.prototype.toNumber = function() {
							var t = this.words[0];
							return 2 === this.length ? t += 67108864 * this.words[1] : 3 === this
								.length && 1 === this.words[2] ? t += 4503599627370496 + 67108864 *
								this.words[1] : this.length > 2 && n(!1,
									"Number can only safely store up to 53 bits"), 0 !== this
								.negative ? -t : t
						}, o.prototype.toJSON = function() {
							return this.toString(16)
						}, o.prototype.toBuffer = function(t, e) {
							return n(void 0 !== s), this.toArrayLike(s, t, e)
						}, o.prototype.toArray = function(t, e) {
							return this.toArrayLike(Array, t, e)
						}, o.prototype.toArrayLike = function(t, e, r) {
							var i = this.byteLength(),
								o = r || Math.max(1, i);
							n(i <= o, "byte array longer than desired length"), n(o > 0,
								"Requested array length <= 0"), this.strip();
							var s, a, u = "le" === e,
								c = new t(o),
								l = this.clone();
							if (u) {
								for (a = 0; !l.isZero(); a++) s = l.andln(255), l.iushrn(8), c[a] =
									s;
								for (; a < o; a++) c[a] = 0
							} else {
								for (a = 0; a < o - i; a++) c[a] = 0;
								for (a = 0; !l.isZero(); a++) s = l.andln(255), l.iushrn(8), c[o -
									a - 1] = s
							}
							return c
						}, Math.clz32 ? o.prototype._countBits = function(t) {
							return 32 - Math.clz32(t)
						} : o.prototype._countBits = function(t) {
							var e = t,
								r = 0;
							return e >= 4096 && (r += 13, e >>>= 13), e >= 64 && (r += 7, e >>>= 7),
								e >= 8 && (r += 4, e >>>= 4), e >= 2 && (r += 2, e >>>= 2), r + e
						}, o.prototype._zeroBits = function(t) {
							if (0 === t) return 26;
							var e = t,
								r = 0;
							return 0 == (8191 & e) && (r += 13, e >>>= 13), 0 == (127 & e) && (r +=
									7, e >>>= 7), 0 == (15 & e) && (r += 4, e >>>= 4), 0 == (3 &
								e) && (r += 2, e >>>= 2), 0 == (1 & e) && r++, r
						}, o.prototype.bitLength = function() {
							var t = this.words[this.length - 1],
								e = this._countBits(t);
							return 26 * (this.length - 1) + e
						}, o.prototype.zeroBits = function() {
							if (this.isZero()) return 0;
							for (var t = 0, e = 0; e < this.length; e++) {
								var r = this._zeroBits(this.words[e]);
								if (t += r, 26 !== r) break
							}
							return t
						}, o.prototype.byteLength = function() {
							return Math.ceil(this.bitLength() / 8)
						}, o.prototype.toTwos = function(t) {
							return 0 !== this.negative ? this.abs().inotn(t).iaddn(1) : this.clone()
						}, o.prototype.fromTwos = function(t) {
							return this.testn(t - 1) ? this.notn(t).iaddn(1).ineg() : this.clone()
						}, o.prototype.isNeg = function() {
							return 0 !== this.negative
						}, o.prototype.neg = function() {
							return this.clone().ineg()
						}, o.prototype.ineg = function() {
							return this.isZero() || (this.negative ^= 1), this
						}, o.prototype.iuor = function(t) {
							for (; this.length < t.length;) this.words[this.length++] = 0;
							for (var e = 0; e < t.length; e++) this.words[e] = this.words[e] | t
								.words[e];
							return this.strip()
						}, o.prototype.ior = function(t) {
							return n(0 == (this.negative | t.negative)), this.iuor(t)
						}, o.prototype.or = function(t) {
							return this.length > t.length ? this.clone().ior(t) : t.clone().ior(
								this)
						}, o.prototype.uor = function(t) {
							return this.length > t.length ? this.clone().iuor(t) : t.clone().iuor(
								this)
						}, o.prototype.iuand = function(t) {
							var e;
							e = this.length > t.length ? t : this;
							for (var r = 0; r < e.length; r++) this.words[r] = this.words[r] & t
								.words[r];
							return this.length = e.length, this.strip()
						}, o.prototype.iand = function(t) {
							return n(0 == (this.negative | t.negative)), this.iuand(t)
						}, o.prototype.and = function(t) {
							return this.length > t.length ? this.clone().iand(t) : t.clone().iand(
								this)
						}, o.prototype.uand = function(t) {
							return this.length > t.length ? this.clone().iuand(t) : t.clone().iuand(
								this)
						}, o.prototype.iuxor = function(t) {
							var e, r;
							this.length > t.length ? (e = this, r = t) : (e = t, r = this);
							for (var n = 0; n < r.length; n++) this.words[n] = e.words[n] ^ r.words[
								n];
							if (this !== e)
								for (; n < e.length; n++) this.words[n] = e.words[n];
							return this.length = e.length, this.strip()
						}, o.prototype.ixor = function(t) {
							return n(0 == (this.negative | t.negative)), this.iuxor(t)
						}, o.prototype.xor = function(t) {
							return this.length > t.length ? this.clone().ixor(t) : t.clone().ixor(
								this)
						}, o.prototype.uxor = function(t) {
							return this.length > t.length ? this.clone().iuxor(t) : t.clone().iuxor(
								this)
						}, o.prototype.inotn = function(t) {
							n("number" == typeof t && t >= 0);
							var e = 0 | Math.ceil(t / 26),
								r = t % 26;
							this._expand(e), r > 0 && e--;
							for (var i = 0; i < e; i++) this.words[i] = 67108863 & ~this.words[i];
							return r > 0 && (this.words[i] = ~this.words[i] & 67108863 >> 26 - r),
								this.strip()
						}, o.prototype.notn = function(t) {
							return this.clone().inotn(t)
						}, o.prototype.setn = function(t, e) {
							n("number" == typeof t && t >= 0);
							var r = t / 26 | 0,
								i = t % 26;
							return this._expand(r + 1), this.words[r] = e ? this.words[r] | 1 << i :
								this.words[r] & ~(1 << i), this.strip()
						}, o.prototype.iadd = function(t) {
							var e, r, n;
							if (0 !== this.negative && 0 === t.negative) return this.negative = 0,
								e = this.isub(t), this.negative ^= 1, this._normSign();
							if (0 === this.negative && 0 !== t.negative) return t.negative = 0, e =
								this.isub(t), t.negative = 1, e._normSign();
							this.length > t.length ? (r = this, n = t) : (r = t, n = this);
							for (var i = 0, o = 0; o < n.length; o++) e = (0 | r.words[o]) + (0 | n
								.words[o]) + i, this.words[o] = 67108863 & e, i = e >>> 26;
							for (; 0 !== i && o < r.length; o++) e = (0 | r.words[o]) + i, this
								.words[o] = 67108863 & e, i = e >>> 26;
							if (this.length = r.length, 0 !== i) this.words[this.length] = i, this
								.length++;
							else if (r !== this)
								for (; o < r.length; o++) this.words[o] = r.words[o];
							return this
						}, o.prototype.add = function(t) {
							var e;
							return 0 !== t.negative && 0 === this.negative ? (t.negative = 0, e =
									this.sub(t), t.negative ^= 1, e) : 0 === t.negative && 0 !==
								this.negative ? (this.negative = 0, e = t.sub(this), this.negative =
									1, e) : this.length > t.length ? this.clone().iadd(t) : t
								.clone().iadd(this)
						}, o.prototype.isub = function(t) {
							if (0 !== t.negative) {
								t.negative = 0;
								var e = this.iadd(t);
								return t.negative = 1, e._normSign()
							}
							if (0 !== this.negative) return this.negative = 0, this.iadd(t), this
								.negative = 1, this._normSign();
							var r, n, i = this.cmp(t);
							if (0 === i) return this.negative = 0, this.length = 1, this.words[0] =
								0, this;
							i > 0 ? (r = this, n = t) : (r = t, n = this);
							for (var o = 0, s = 0; s < n.length; s++) o = (e = (0 | r.words[s]) - (
								0 | n.words[s]) + o) >> 26, this.words[s] = 67108863 & e;
							for (; 0 !== o && s < r.length; s++) o = (e = (0 | r.words[s]) + o) >>
								26, this.words[s] = 67108863 & e;
							if (0 === o && s < r.length && r !== this)
								for (; s < r.length; s++) this.words[s] = r.words[s];
							return this.length = Math.max(this.length, s), r !== this && (this
								.negative = 1), this.strip()
						}, o.prototype.sub = function(t) {
							return this.clone().isub(t)
						};
						var p = function(t, e, r) {
							var n, i, o, s = t.words,
								a = e.words,
								u = r.words,
								c = 0,
								l = 0 | s[0],
								h = 8191 & l,
								f = l >>> 13,
								d = 0 | s[1],
								p = 8191 & d,
								m = d >>> 13,
								g = 0 | s[2],
								y = 8191 & g,
								v = g >>> 13,
								b = 0 | s[3],
								w = 8191 & b,
								E = b >>> 13,
								_ = 0 | s[4],
								x = 8191 & _,
								A = _ >>> 13,
								k = 0 | s[5],
								N = 8191 & k,
								S = k >>> 13,
								P = 0 | s[6],
								M = 8191 & P,
								O = P >>> 13,
								I = 0 | s[7],
								T = 8191 & I,
								R = I >>> 13,
								C = 0 | s[8],
								B = 8191 & C,
								F = C >>> 13,
								j = 0 | s[9],
								L = 8191 & j,
								U = j >>> 13,
								D = 0 | a[0],
								q = 8191 & D,
								z = D >>> 13,
								G = 0 | a[1],
								V = 8191 & G,
								H = G >>> 13,
								$ = 0 | a[2],
								W = 8191 & $,
								J = $ >>> 13,
								X = 0 | a[3],
								K = 8191 & X,
								Z = X >>> 13,
								Q = 0 | a[4],
								Y = 8191 & Q,
								tt = Q >>> 13,
								et = 0 | a[5],
								rt = 8191 & et,
								nt = et >>> 13,
								it = 0 | a[6],
								ot = 8191 & it,
								st = it >>> 13,
								at = 0 | a[7],
								ut = 8191 & at,
								ct = at >>> 13,
								lt = 0 | a[8],
								ht = 8191 & lt,
								ft = lt >>> 13,
								dt = 0 | a[9],
								pt = 8191 & dt,
								mt = dt >>> 13;
							r.negative = t.negative ^ e.negative, r.length = 19;
							var gt = (c + (n = Math.imul(h, q)) | 0) + ((8191 & (i = (i = Math.imul(
								h, z)) + Math.imul(f, q) | 0)) << 13) | 0;
							c = ((o = Math.imul(f, z)) + (i >>> 13) | 0) + (gt >>> 26) | 0, gt &=
								67108863, n = Math.imul(p, q), i = (i = Math.imul(p, z)) + Math
								.imul(m, q) | 0, o = Math.imul(m, z);
							var yt = (c + (n = n + Math.imul(h, V) | 0) | 0) + ((8191 & (i = (i =
								i + Math.imul(h, H) | 0) + Math.imul(f, V) | 0)) << 13) | 0;
							c = ((o = o + Math.imul(f, H) | 0) + (i >>> 13) | 0) + (yt >>> 26) | 0,
								yt &= 67108863, n = Math.imul(y, q), i = (i = Math.imul(y, z)) +
								Math.imul(v, q) | 0, o = Math.imul(v, z), n = n + Math.imul(p, V) |
								0, i = (i = i + Math.imul(p, H) | 0) + Math.imul(m, V) | 0, o = o +
								Math.imul(m, H) | 0;
							var vt = (c + (n = n + Math.imul(h, W) | 0) | 0) + ((8191 & (i = (i =
								i + Math.imul(h, J) | 0) + Math.imul(f, W) | 0)) << 13) | 0;
							c = ((o = o + Math.imul(f, J) | 0) + (i >>> 13) | 0) + (vt >>> 26) | 0,
								vt &= 67108863, n = Math.imul(w, q), i = (i = Math.imul(w, z)) +
								Math.imul(E, q) | 0, o = Math.imul(E, z), n = n + Math.imul(y, V) |
								0, i = (i = i + Math.imul(y, H) | 0) + Math.imul(v, V) | 0, o = o +
								Math.imul(v, H) | 0, n = n + Math.imul(p, W) | 0, i = (i = i + Math
									.imul(p, J) | 0) + Math.imul(m, W) | 0, o = o + Math.imul(m,
								J) | 0;
							var bt = (c + (n = n + Math.imul(h, K) | 0) | 0) + ((8191 & (i = (i =
								i + Math.imul(h, Z) | 0) + Math.imul(f, K) | 0)) << 13) | 0;
							c = ((o = o + Math.imul(f, Z) | 0) + (i >>> 13) | 0) + (bt >>> 26) | 0,
								bt &= 67108863, n = Math.imul(x, q), i = (i = Math.imul(x, z)) +
								Math.imul(A, q) | 0, o = Math.imul(A, z), n = n + Math.imul(w, V) |
								0, i = (i = i + Math.imul(w, H) | 0) + Math.imul(E, V) | 0, o = o +
								Math.imul(E, H) | 0, n = n + Math.imul(y, W) | 0, i = (i = i + Math
									.imul(y, J) | 0) + Math.imul(v, W) | 0, o = o + Math.imul(v,
								J) | 0, n = n + Math.imul(p, K) | 0, i = (i = i + Math.imul(p, Z) |
									0) + Math.imul(m, K) | 0, o = o + Math.imul(m, Z) | 0;
							var wt = (c + (n = n + Math.imul(h, Y) | 0) | 0) + ((8191 & (i = (i =
								i + Math.imul(h, tt) | 0) + Math.imul(f, Y) | 0)) << 13) | 0;
							c = ((o = o + Math.imul(f, tt) | 0) + (i >>> 13) | 0) + (wt >>> 26) | 0,
								wt &= 67108863, n = Math.imul(N, q), i = (i = Math.imul(N, z)) +
								Math.imul(S, q) | 0, o = Math.imul(S, z), n = n + Math.imul(x, V) |
								0, i = (i = i + Math.imul(x, H) | 0) + Math.imul(A, V) | 0, o = o +
								Math.imul(A, H) | 0, n = n + Math.imul(w, W) | 0, i = (i = i + Math
									.imul(w, J) | 0) + Math.imul(E, W) | 0, o = o + Math.imul(E,
								J) | 0, n = n + Math.imul(y, K) | 0, i = (i = i + Math.imul(y, Z) |
									0) + Math.imul(v, K) | 0, o = o + Math.imul(v, Z) | 0, n = n +
								Math.imul(p, Y) | 0, i = (i = i + Math.imul(p, tt) | 0) + Math.imul(
									m, Y) | 0, o = o + Math.imul(m, tt) | 0;
							var Et = (c + (n = n + Math.imul(h, rt) | 0) | 0) + ((8191 & (i = (i =
								i + Math.imul(h, nt) | 0) + Math.imul(f, rt) | 0)) << 13) | 0;
							c = ((o = o + Math.imul(f, nt) | 0) + (i >>> 13) | 0) + (Et >>> 26) | 0,
								Et &= 67108863, n = Math.imul(M, q), i = (i = Math.imul(M, z)) +
								Math.imul(O, q) | 0, o = Math.imul(O, z), n = n + Math.imul(N, V) |
								0, i = (i = i + Math.imul(N, H) | 0) + Math.imul(S, V) | 0, o = o +
								Math.imul(S, H) | 0, n = n + Math.imul(x, W) | 0, i = (i = i + Math
									.imul(x, J) | 0) + Math.imul(A, W) | 0, o = o + Math.imul(A,
								J) | 0, n = n + Math.imul(w, K) | 0, i = (i = i + Math.imul(w, Z) |
									0) + Math.imul(E, K) | 0, o = o + Math.imul(E, Z) | 0, n = n +
								Math.imul(y, Y) | 0, i = (i = i + Math.imul(y, tt) | 0) + Math.imul(
									v, Y) | 0, o = o + Math.imul(v, tt) | 0, n = n + Math.imul(p,
									rt) | 0, i = (i = i + Math.imul(p, nt) | 0) + Math.imul(m, rt) |
								0, o = o + Math.imul(m, nt) | 0;
							var _t = (c + (n = n + Math.imul(h, ot) | 0) | 0) + ((8191 & (i = (i =
								i + Math.imul(h, st) | 0) + Math.imul(f, ot) | 0)) << 13) | 0;
							c = ((o = o + Math.imul(f, st) | 0) + (i >>> 13) | 0) + (_t >>> 26) | 0,
								_t &= 67108863, n = Math.imul(T, q), i = (i = Math.imul(T, z)) +
								Math.imul(R, q) | 0, o = Math.imul(R, z), n = n + Math.imul(M, V) |
								0, i = (i = i + Math.imul(M, H) | 0) + Math.imul(O, V) | 0, o = o +
								Math.imul(O, H) | 0, n = n + Math.imul(N, W) | 0, i = (i = i + Math
									.imul(N, J) | 0) + Math.imul(S, W) | 0, o = o + Math.imul(S,
								J) | 0, n = n + Math.imul(x, K) | 0, i = (i = i + Math.imul(x, Z) |
									0) + Math.imul(A, K) | 0, o = o + Math.imul(A, Z) | 0, n = n +
								Math.imul(w, Y) | 0, i = (i = i + Math.imul(w, tt) | 0) + Math.imul(
									E, Y) | 0, o = o + Math.imul(E, tt) | 0, n = n + Math.imul(y,
									rt) | 0, i = (i = i + Math.imul(y, nt) | 0) + Math.imul(v, rt) |
								0, o = o + Math.imul(v, nt) | 0, n = n + Math.imul(p, ot) | 0, i = (
									i = i + Math.imul(p, st) | 0) + Math.imul(m, ot) | 0, o = o +
								Math.imul(m, st) | 0;
							var xt = (c + (n = n + Math.imul(h, ut) | 0) | 0) + ((8191 & (i = (i =
								i + Math.imul(h, ct) | 0) + Math.imul(f, ut) | 0)) << 13) | 0;
							c = ((o = o + Math.imul(f, ct) | 0) + (i >>> 13) | 0) + (xt >>> 26) | 0,
								xt &= 67108863, n = Math.imul(B, q), i = (i = Math.imul(B, z)) +
								Math.imul(F, q) | 0, o = Math.imul(F, z), n = n + Math.imul(T, V) |
								0, i = (i = i + Math.imul(T, H) | 0) + Math.imul(R, V) | 0, o = o +
								Math.imul(R, H) | 0, n = n + Math.imul(M, W) | 0, i = (i = i + Math
									.imul(M, J) | 0) + Math.imul(O, W) | 0, o = o + Math.imul(O,
								J) | 0, n = n + Math.imul(N, K) | 0, i = (i = i + Math.imul(N, Z) |
									0) + Math.imul(S, K) | 0, o = o + Math.imul(S, Z) | 0, n = n +
								Math.imul(x, Y) | 0, i = (i = i + Math.imul(x, tt) | 0) + Math.imul(
									A, Y) | 0, o = o + Math.imul(A, tt) | 0, n = n + Math.imul(w,
									rt) | 0, i = (i = i + Math.imul(w, nt) | 0) + Math.imul(E, rt) |
								0, o = o + Math.imul(E, nt) | 0, n = n + Math.imul(y, ot) | 0, i = (
									i = i + Math.imul(y, st) | 0) + Math.imul(v, ot) | 0, o = o +
								Math.imul(v, st) | 0, n = n + Math.imul(p, ut) | 0, i = (i = i +
									Math.imul(p, ct) | 0) + Math.imul(m, ut) | 0, o = o + Math.imul(
									m, ct) | 0;
							var At = (c + (n = n + Math.imul(h, ht) | 0) | 0) + ((8191 & (i = (i =
								i + Math.imul(h, ft) | 0) + Math.imul(f, ht) | 0)) << 13) | 0;
							c = ((o = o + Math.imul(f, ft) | 0) + (i >>> 13) | 0) + (At >>> 26) | 0,
								At &= 67108863, n = Math.imul(L, q), i = (i = Math.imul(L, z)) +
								Math.imul(U, q) | 0, o = Math.imul(U, z), n = n + Math.imul(B, V) |
								0, i = (i = i + Math.imul(B, H) | 0) + Math.imul(F, V) | 0, o = o +
								Math.imul(F, H) | 0, n = n + Math.imul(T, W) | 0, i = (i = i + Math
									.imul(T, J) | 0) + Math.imul(R, W) | 0, o = o + Math.imul(R,
								J) | 0, n = n + Math.imul(M, K) | 0, i = (i = i + Math.imul(M, Z) |
									0) + Math.imul(O, K) | 0, o = o + Math.imul(O, Z) | 0, n = n +
								Math.imul(N, Y) | 0, i = (i = i + Math.imul(N, tt) | 0) + Math.imul(
									S, Y) | 0, o = o + Math.imul(S, tt) | 0, n = n + Math.imul(x,
									rt) | 0, i = (i = i + Math.imul(x, nt) | 0) + Math.imul(A, rt) |
								0, o = o + Math.imul(A, nt) | 0, n = n + Math.imul(w, ot) | 0, i = (
									i = i + Math.imul(w, st) | 0) + Math.imul(E, ot) | 0, o = o +
								Math.imul(E, st) | 0, n = n + Math.imul(y, ut) | 0, i = (i = i +
									Math.imul(y, ct) | 0) + Math.imul(v, ut) | 0, o = o + Math.imul(
									v, ct) | 0, n = n + Math.imul(p, ht) | 0, i = (i = i + Math
									.imul(p, ft) | 0) + Math.imul(m, ht) | 0, o = o + Math.imul(m,
									ft) | 0;
							var kt = (c + (n = n + Math.imul(h, pt) | 0) | 0) + ((8191 & (i = (i =
								i + Math.imul(h, mt) | 0) + Math.imul(f, pt) | 0)) << 13) | 0;
							c = ((o = o + Math.imul(f, mt) | 0) + (i >>> 13) | 0) + (kt >>> 26) | 0,
								kt &= 67108863, n = Math.imul(L, V), i = (i = Math.imul(L, H)) +
								Math.imul(U, V) | 0, o = Math.imul(U, H), n = n + Math.imul(B, W) |
								0, i = (i = i + Math.imul(B, J) | 0) + Math.imul(F, W) | 0, o = o +
								Math.imul(F, J) | 0, n = n + Math.imul(T, K) | 0, i = (i = i + Math
									.imul(T, Z) | 0) + Math.imul(R, K) | 0, o = o + Math.imul(R,
								Z) | 0, n = n + Math.imul(M, Y) | 0, i = (i = i + Math.imul(M, tt) |
									0) + Math.imul(O, Y) | 0, o = o + Math.imul(O, tt) | 0, n = n +
								Math.imul(N, rt) | 0, i = (i = i + Math.imul(N, nt) | 0) + Math
								.imul(S, rt) | 0, o = o + Math.imul(S, nt) | 0, n = n + Math.imul(x,
									ot) | 0, i = (i = i + Math.imul(x, st) | 0) + Math.imul(A, ot) |
								0, o = o + Math.imul(A, st) | 0, n = n + Math.imul(w, ut) | 0, i = (
									i = i + Math.imul(w, ct) | 0) + Math.imul(E, ut) | 0, o = o +
								Math.imul(E, ct) | 0, n = n + Math.imul(y, ht) | 0, i = (i = i +
									Math.imul(y, ft) | 0) + Math.imul(v, ht) | 0, o = o + Math.imul(
									v, ft) | 0;
							var Nt = (c + (n = n + Math.imul(p, pt) | 0) | 0) + ((8191 & (i = (i =
								i + Math.imul(p, mt) | 0) + Math.imul(m, pt) | 0)) << 13) | 0;
							c = ((o = o + Math.imul(m, mt) | 0) + (i >>> 13) | 0) + (Nt >>> 26) | 0,
								Nt &= 67108863, n = Math.imul(L, W), i = (i = Math.imul(L, J)) +
								Math.imul(U, W) | 0, o = Math.imul(U, J), n = n + Math.imul(B, K) |
								0, i = (i = i + Math.imul(B, Z) | 0) + Math.imul(F, K) | 0, o = o +
								Math.imul(F, Z) | 0, n = n + Math.imul(T, Y) | 0, i = (i = i + Math
									.imul(T, tt) | 0) + Math.imul(R, Y) | 0, o = o + Math.imul(R,
									tt) | 0, n = n + Math.imul(M, rt) | 0, i = (i = i + Math.imul(M,
									nt) | 0) + Math.imul(O, rt) | 0, o = o + Math.imul(O, nt) | 0,
								n = n + Math.imul(N, ot) | 0, i = (i = i + Math.imul(N, st) | 0) +
								Math.imul(S, ot) | 0, o = o + Math.imul(S, st) | 0, n = n + Math
								.imul(x, ut) | 0, i = (i = i + Math.imul(x, ct) | 0) + Math.imul(A,
									ut) | 0, o = o + Math.imul(A, ct) | 0, n = n + Math.imul(w,
								ht) | 0, i = (i = i + Math.imul(w, ft) | 0) + Math.imul(E, ht) | 0,
								o = o + Math.imul(E, ft) | 0;
							var St = (c + (n = n + Math.imul(y, pt) | 0) | 0) + ((8191 & (i = (i =
								i + Math.imul(y, mt) | 0) + Math.imul(v, pt) | 0)) << 13) | 0;
							c = ((o = o + Math.imul(v, mt) | 0) + (i >>> 13) | 0) + (St >>> 26) | 0,
								St &= 67108863, n = Math.imul(L, K), i = (i = Math.imul(L, Z)) +
								Math.imul(U, K) | 0, o = Math.imul(U, Z), n = n + Math.imul(B, Y) |
								0, i = (i = i + Math.imul(B, tt) | 0) + Math.imul(F, Y) | 0, o = o +
								Math.imul(F, tt) | 0, n = n + Math.imul(T, rt) | 0, i = (i = i +
									Math.imul(T, nt) | 0) + Math.imul(R, rt) | 0, o = o + Math.imul(
									R, nt) | 0, n = n + Math.imul(M, ot) | 0, i = (i = i + Math
									.imul(M, st) | 0) + Math.imul(O, ot) | 0, o = o + Math.imul(O,
									st) | 0, n = n + Math.imul(N, ut) | 0, i = (i = i + Math.imul(N,
									ct) | 0) + Math.imul(S, ut) | 0, o = o + Math.imul(S, ct) | 0,
								n = n + Math.imul(x, ht) | 0, i = (i = i + Math.imul(x, ft) | 0) +
								Math.imul(A, ht) | 0, o = o + Math.imul(A, ft) | 0;
							var Pt = (c + (n = n + Math.imul(w, pt) | 0) | 0) + ((8191 & (i = (i =
								i + Math.imul(w, mt) | 0) + Math.imul(E, pt) | 0)) << 13) | 0;
							c = ((o = o + Math.imul(E, mt) | 0) + (i >>> 13) | 0) + (Pt >>> 26) | 0,
								Pt &= 67108863, n = Math.imul(L, Y), i = (i = Math.imul(L, tt)) +
								Math.imul(U, Y) | 0, o = Math.imul(U, tt), n = n + Math.imul(B,
								rt) | 0, i = (i = i + Math.imul(B, nt) | 0) + Math.imul(F, rt) | 0,
								o = o + Math.imul(F, nt) | 0, n = n + Math.imul(T, ot) | 0, i = (i =
									i + Math.imul(T, st) | 0) + Math.imul(R, ot) | 0, o = o + Math
								.imul(R, st) | 0, n = n + Math.imul(M, ut) | 0, i = (i = i + Math
									.imul(M, ct) | 0) + Math.imul(O, ut) | 0, o = o + Math.imul(O,
									ct) | 0, n = n + Math.imul(N, ht) | 0, i = (i = i + Math.imul(N,
									ft) | 0) + Math.imul(S, ht) | 0, o = o + Math.imul(S, ft) | 0;
							var Mt = (c + (n = n + Math.imul(x, pt) | 0) | 0) + ((8191 & (i = (i =
								i + Math.imul(x, mt) | 0) + Math.imul(A, pt) | 0)) << 13) | 0;
							c = ((o = o + Math.imul(A, mt) | 0) + (i >>> 13) | 0) + (Mt >>> 26) | 0,
								Mt &= 67108863, n = Math.imul(L, rt), i = (i = Math.imul(L, nt)) +
								Math.imul(U, rt) | 0, o = Math.imul(U, nt), n = n + Math.imul(B,
								ot) | 0, i = (i = i + Math.imul(B, st) | 0) + Math.imul(F, ot) | 0,
								o = o + Math.imul(F, st) | 0, n = n + Math.imul(T, ut) | 0, i = (i =
									i + Math.imul(T, ct) | 0) + Math.imul(R, ut) | 0, o = o + Math
								.imul(R, ct) | 0, n = n + Math.imul(M, ht) | 0, i = (i = i + Math
									.imul(M, ft) | 0) + Math.imul(O, ht) | 0, o = o + Math.imul(O,
									ft) | 0;
							var Ot = (c + (n = n + Math.imul(N, pt) | 0) | 0) + ((8191 & (i = (i =
								i + Math.imul(N, mt) | 0) + Math.imul(S, pt) | 0)) << 13) | 0;
							c = ((o = o + Math.imul(S, mt) | 0) + (i >>> 13) | 0) + (Ot >>> 26) | 0,
								Ot &= 67108863, n = Math.imul(L, ot), i = (i = Math.imul(L, st)) +
								Math.imul(U, ot) | 0, o = Math.imul(U, st), n = n + Math.imul(B,
								ut) | 0, i = (i = i + Math.imul(B, ct) | 0) + Math.imul(F, ut) | 0,
								o = o + Math.imul(F, ct) | 0, n = n + Math.imul(T, ht) | 0, i = (i =
									i + Math.imul(T, ft) | 0) + Math.imul(R, ht) | 0, o = o + Math
								.imul(R, ft) | 0;
							var It = (c + (n = n + Math.imul(M, pt) | 0) | 0) + ((8191 & (i = (i =
								i + Math.imul(M, mt) | 0) + Math.imul(O, pt) | 0)) << 13) | 0;
							c = ((o = o + Math.imul(O, mt) | 0) + (i >>> 13) | 0) + (It >>> 26) | 0,
								It &= 67108863, n = Math.imul(L, ut), i = (i = Math.imul(L, ct)) +
								Math.imul(U, ut) | 0, o = Math.imul(U, ct), n = n + Math.imul(B,
								ht) | 0, i = (i = i + Math.imul(B, ft) | 0) + Math.imul(F, ht) | 0,
								o = o + Math.imul(F, ft) | 0;
							var Tt = (c + (n = n + Math.imul(T, pt) | 0) | 0) + ((8191 & (i = (i =
								i + Math.imul(T, mt) | 0) + Math.imul(R, pt) | 0)) << 13) | 0;
							c = ((o = o + Math.imul(R, mt) | 0) + (i >>> 13) | 0) + (Tt >>> 26) | 0,
								Tt &= 67108863, n = Math.imul(L, ht), i = (i = Math.imul(L, ft)) +
								Math.imul(U, ht) | 0, o = Math.imul(U, ft);
							var Rt = (c + (n = n + Math.imul(B, pt) | 0) | 0) + ((8191 & (i = (i =
								i + Math.imul(B, mt) | 0) + Math.imul(F, pt) | 0)) << 13) | 0;
							c = ((o = o + Math.imul(F, mt) | 0) + (i >>> 13) | 0) + (Rt >>> 26) | 0,
								Rt &= 67108863;
							var Ct = (c + (n = Math.imul(L, pt)) | 0) + ((8191 & (i = (i = Math
								.imul(L, mt)) + Math.imul(U, pt) | 0)) << 13) | 0;
							return c = ((o = Math.imul(U, mt)) + (i >>> 13) | 0) + (Ct >>> 26) | 0,
								Ct &= 67108863, u[0] = gt, u[1] = yt, u[2] = vt, u[3] = bt, u[4] =
								wt, u[5] = Et, u[6] = _t, u[7] = xt, u[8] = At, u[9] = kt, u[10] =
								Nt, u[11] = St, u[12] = Pt, u[13] = Mt, u[14] = Ot, u[15] = It, u[
									16] = Tt, u[17] = Rt, u[18] = Ct, 0 !== c && (u[19] = c, r
									.length++), r
						};

						function m(t, e, r) {
							return (new g).mulp(t, e, r)
						}

						function g(t, e) {
							this.x = t, this.y = e
						}
						Math.imul || (p = d), o.prototype.mulTo = function(t, e) {
							var r, n = this.length + t.length;
							return r = 10 === this.length && 10 === t.length ? p(this, t, e) : n <
								63 ? d(this, t, e) : n < 1024 ? function(t, e, r) {
									r.negative = e.negative ^ t.negative, r.length = t.length + e
										.length;
									for (var n = 0, i = 0, o = 0; o < r.length - 1; o++) {
										var s = i;
										i = 0;
										for (var a = 67108863 & n, u = Math.min(o, e.length - 1),
												c = Math.max(0, o - t.length + 1); c <= u; c++) {
											var l = o - c,
												h = (0 | t.words[l]) * (0 | e.words[c]),
												f = 67108863 & h;
											a = 67108863 & (f = f + a | 0), i += (s = (s = s + (h /
													67108864 | 0) | 0) + (f >>> 26) | 0) >>> 26,
												s &= 67108863
										}
										r.words[o] = a, n = s, s = i
									}
									return 0 !== n ? r.words[o] = n : r.length--, r.strip()
								}(this, t, e) : m(this, t, e), r
						}, g.prototype.makeRBT = function(t) {
							for (var e = new Array(t), r = o.prototype._countBits(t) - 1, n = 0; n <
								t; n++) e[n] = this.revBin(n, r, t);
							return e
						}, g.prototype.revBin = function(t, e, r) {
							if (0 === t || t === r - 1) return t;
							for (var n = 0, i = 0; i < e; i++) n |= (1 & t) << e - i - 1, t >>= 1;
							return n
						}, g.prototype.permute = function(t, e, r, n, i, o) {
							for (var s = 0; s < o; s++) n[s] = e[t[s]], i[s] = r[t[s]]
						}, g.prototype.transform = function(t, e, r, n, i, o) {
							this.permute(o, t, e, r, n, i);
							for (var s = 1; s < i; s <<= 1)
								for (var a = s << 1, u = Math.cos(2 * Math.PI / a), c = Math.sin(2 *
										Math.PI / a), l = 0; l < i; l += a)
									for (var h = u, f = c, d = 0; d < s; d++) {
										var p = r[l + d],
											m = n[l + d],
											g = r[l + d + s],
											y = n[l + d + s],
											v = h * g - f * y;
										y = h * y + f * g, g = v, r[l + d] = p + g, n[l + d] = m +
											y, r[l + d + s] = p - g, n[l + d + s] = m - y, d !==
											a && (v = u * h - c * f, f = u * f + c * h, h = v)
									}
						}, g.prototype.guessLen13b = function(t, e) {
							var r = 1 | Math.max(e, t),
								n = 1 & r,
								i = 0;
							for (r = r / 2 | 0; r; r >>>= 1) i++;
							return 1 << i + 1 + n
						}, g.prototype.conjugate = function(t, e, r) {
							if (!(r <= 1))
								for (var n = 0; n < r / 2; n++) {
									var i = t[n];
									t[n] = t[r - n - 1], t[r - n - 1] = i, i = e[n], e[n] = -e[r -
										n - 1], e[r - n - 1] = -i
								}
						}, g.prototype.normalize13b = function(t, e) {
							for (var r = 0, n = 0; n < e / 2; n++) {
								var i = 8192 * Math.round(t[2 * n + 1] / e) + Math.round(t[2 * n] /
									e) + r;
								t[n] = 67108863 & i, r = i < 67108864 ? 0 : i / 67108864 | 0
							}
							return t
						}, g.prototype.convert13b = function(t, e, r, i) {
							for (var o = 0, s = 0; s < e; s++) o += 0 | t[s], r[2 * s] = 8191 & o,
								o >>>= 13, r[2 * s + 1] = 8191 & o, o >>>= 13;
							for (s = 2 * e; s < i; ++s) r[s] = 0;
							n(0 === o), n(0 == (-8192 & o))
						}, g.prototype.stub = function(t) {
							for (var e = new Array(t), r = 0; r < t; r++) e[r] = 0;
							return e
						}, g.prototype.mulp = function(t, e, r) {
							var n = 2 * this.guessLen13b(t.length, e.length),
								i = this.makeRBT(n),
								o = this.stub(n),
								s = new Array(n),
								a = new Array(n),
								u = new Array(n),
								c = new Array(n),
								l = new Array(n),
								h = new Array(n),
								f = r.words;
							f.length = n, this.convert13b(t.words, t.length, s, n), this.convert13b(
									e.words, e.length, c, n), this.transform(s, o, a, u, n, i), this
								.transform(c, o, l, h, n, i);
							for (var d = 0; d < n; d++) {
								var p = a[d] * l[d] - u[d] * h[d];
								u[d] = a[d] * h[d] + u[d] * l[d], a[d] = p
							}
							return this.conjugate(a, u, n), this.transform(a, u, f, o, n, i), this
								.conjugate(f, o, n), this.normalize13b(f, n), r.negative = t
								.negative ^ e.negative, r.length = t.length + e.length, r.strip()
						}, o.prototype.mul = function(t) {
							var e = new o(null);
							return e.words = new Array(this.length + t.length), this.mulTo(t, e)
						}, o.prototype.mulf = function(t) {
							var e = new o(null);
							return e.words = new Array(this.length + t.length), m(this, t, e)
						}, o.prototype.imul = function(t) {
							return this.clone().mulTo(t, this)
						}, o.prototype.imuln = function(t) {
							n("number" == typeof t), n(t < 67108864);
							for (var e = 0, r = 0; r < this.length; r++) {
								var i = (0 | this.words[r]) * t,
									o = (67108863 & i) + (67108863 & e);
								e >>= 26, e += i / 67108864 | 0, e += o >>> 26, this.words[r] =
									67108863 & o
							}
							return 0 !== e && (this.words[r] = e, this.length++), this
						}, o.prototype.muln = function(t) {
							return this.clone().imuln(t)
						}, o.prototype.sqr = function() {
							return this.mul(this)
						}, o.prototype.isqr = function() {
							return this.imul(this.clone())
						}, o.prototype.pow = function(t) {
							var e = function(t) {
								for (var e = new Array(t.bitLength()), r = 0; r < e
									.length; r++) {
									var n = r / 26 | 0,
										i = r % 26;
									e[r] = (t.words[n] & 1 << i) >>> i
								}
								return e
							}(t);
							if (0 === e.length) return new o(1);
							for (var r = this, n = 0; n < e.length && 0 === e[n]; n++, r = r.sqr());
							if (++n < e.length)
								for (var i = r.sqr(); n < e.length; n++, i = i.sqr()) 0 !== e[n] &&
									(r = r.mul(i));
							return r
						}, o.prototype.iushln = function(t) {
							n("number" == typeof t && t >= 0);
							var e, r = t % 26,
								i = (t - r) / 26,
								o = 67108863 >>> 26 - r << 26 - r;
							if (0 !== r) {
								var s = 0;
								for (e = 0; e < this.length; e++) {
									var a = this.words[e] & o,
										u = (0 | this.words[e]) - a << r;
									this.words[e] = u | s, s = a >>> 26 - r
								}
								s && (this.words[e] = s, this.length++)
							}
							if (0 !== i) {
								for (e = this.length - 1; e >= 0; e--) this.words[e + i] = this
									.words[e];
								for (e = 0; e < i; e++) this.words[e] = 0;
								this.length += i
							}
							return this.strip()
						}, o.prototype.ishln = function(t) {
							return n(0 === this.negative), this.iushln(t)
						}, o.prototype.iushrn = function(t, e, r) {
							var i;
							n("number" == typeof t && t >= 0), i = e ? (e - e % 26) / 26 : 0;
							var o = t % 26,
								s = Math.min((t - o) / 26, this.length),
								a = 67108863 ^ 67108863 >>> o << o,
								u = r;
							if (i -= s, i = Math.max(0, i), u) {
								for (var c = 0; c < s; c++) u.words[c] = this.words[c];
								u.length = s
							}
							if (0 === s);
							else if (this.length > s)
								for (this.length -= s, c = 0; c < this.length; c++) this.words[c] =
									this.words[c + s];
							else this.words[0] = 0, this.length = 1;
							var l = 0;
							for (c = this.length - 1; c >= 0 && (0 !== l || c >= i); c--) {
								var h = 0 | this.words[c];
								this.words[c] = l << 26 - o | h >>> o, l = h & a
							}
							return u && 0 !== l && (u.words[u.length++] = l), 0 === this.length && (
								this.words[0] = 0, this.length = 1), this.strip()
						}, o.prototype.ishrn = function(t, e, r) {
							return n(0 === this.negative), this.iushrn(t, e, r)
						}, o.prototype.shln = function(t) {
							return this.clone().ishln(t)
						}, o.prototype.ushln = function(t) {
							return this.clone().iushln(t)
						}, o.prototype.shrn = function(t) {
							return this.clone().ishrn(t)
						}, o.prototype.ushrn = function(t) {
							return this.clone().iushrn(t)
						}, o.prototype.testn = function(t) {
							n("number" == typeof t && t >= 0);
							var e = t % 26,
								r = (t - e) / 26,
								i = 1 << e;
							return !(this.length <= r) && !!(this.words[r] & i)
						}, o.prototype.imaskn = function(t) {
							n("number" == typeof t && t >= 0);
							var e = t % 26,
								r = (t - e) / 26;
							if (n(0 === this.negative, "imaskn works only with positive numbers"),
								this.length <= r) return this;
							if (0 !== e && r++, this.length = Math.min(r, this.length), 0 !== e) {
								var i = 67108863 ^ 67108863 >>> e << e;
								this.words[this.length - 1] &= i
							}
							return this.strip()
						}, o.prototype.maskn = function(t) {
							return this.clone().imaskn(t)
						}, o.prototype.iaddn = function(t) {
							return n("number" == typeof t), n(t < 67108864), t < 0 ? this.isubn(-
								t) : 0 !== this.negative ? 1 === this.length && (0 | this.words[
								0]) < t ? (this.words[0] = t - (0 | this.words[0]), this.negative =
									0, this) : (this.negative = 0, this.isubn(t), this.negative = 1,
									this) : this._iaddn(t)
						}, o.prototype._iaddn = function(t) {
							this.words[0] += t;
							for (var e = 0; e < this.length && this.words[e] >= 67108864; e++) this
								.words[e] -= 67108864, e === this.length - 1 ? this.words[e + 1] =
								1 : this.words[e + 1]++;
							return this.length = Math.max(this.length, e + 1), this
						}, o.prototype.isubn = function(t) {
							if (n("number" == typeof t), n(t < 67108864), t < 0) return this.iaddn(-
								t);
							if (0 !== this.negative) return this.negative = 0, this.iaddn(t), this
								.negative = 1, this;
							if (this.words[0] -= t, 1 === this.length && this.words[0] < 0) this
								.words[0] = -this.words[0], this.negative = 1;
							else
								for (var e = 0; e < this.length && this.words[e] < 0; e++) this
									.words[e] += 67108864, this.words[e + 1] -= 1;
							return this.strip()
						}, o.prototype.addn = function(t) {
							return this.clone().iaddn(t)
						}, o.prototype.subn = function(t) {
							return this.clone().isubn(t)
						}, o.prototype.iabs = function() {
							return this.negative = 0, this
						}, o.prototype.abs = function() {
							return this.clone().iabs()
						}, o.prototype._ishlnsubmul = function(t, e, r) {
							var i, o, s = t.length + r;
							this._expand(s);
							var a = 0;
							for (i = 0; i < t.length; i++) {
								o = (0 | this.words[i + r]) + a;
								var u = (0 | t.words[i]) * e;
								a = ((o -= 67108863 & u) >> 26) - (u / 67108864 | 0), this.words[i +
									r] = 67108863 & o
							}
							for (; i < this.length - r; i++) a = (o = (0 | this.words[i + r]) +
								a) >> 26, this.words[i + r] = 67108863 & o;
							if (0 === a) return this.strip();
							for (n(-1 === a), a = 0, i = 0; i < this.length; i++) a = (o = -(0 |
								this.words[i]) + a) >> 26, this.words[i] = 67108863 & o;
							return this.negative = 1, this.strip()
						}, o.prototype._wordDiv = function(t, e) {
							var r = (this.length, t.length),
								n = this.clone(),
								i = t,
								s = 0 | i.words[i.length - 1];
							0 !== (r = 26 - this._countBits(s)) && (i = i.ushln(r), n.iushln(r), s =
								0 | i.words[i.length - 1]);
							var a, u = n.length - i.length;
							if ("mod" !== e) {
								(a = new o(null)).length = u + 1, a.words = new Array(a.length);
								for (var c = 0; c < a.length; c++) a.words[c] = 0
							}
							var l = n.clone()._ishlnsubmul(i, 1, u);
							0 === l.negative && (n = l, a && (a.words[u] = 1));
							for (var h = u - 1; h >= 0; h--) {
								var f = 67108864 * (0 | n.words[i.length + h]) + (0 | n.words[i
									.length + h - 1]);
								for (f = Math.min(f / s | 0, 67108863), n._ishlnsubmul(i, f,
									h); 0 !== n.negative;) f--, n.negative = 0, n._ishlnsubmul(i, 1,
									h), n.isZero() || (n.negative ^= 1);
								a && (a.words[h] = f)
							}
							return a && a.strip(), n.strip(), "div" !== e && 0 !== r && n.iushrn(
							r), {
								div: a || null,
								mod: n
							}
						}, o.prototype.divmod = function(t, e, r) {
							return n(!t.isZero()), this.isZero() ? {
								div: new o(0),
								mod: new o(0)
							} : 0 !== this.negative && 0 === t.negative ? (a = this.neg()
								.divmod(t, e), "mod" !== e && (i = a.div.neg()), "div" !== e &&
								(s = a.mod.neg(), r && 0 !== s.negative && s.iadd(t)), {
									div: i,
									mod: s
								}) : 0 === this.negative && 0 !== t.negative ? (a = this.divmod(
								t.neg(), e), "mod" !== e && (i = a.div.neg()), {
								div: i,
								mod: a.mod
							}) : 0 != (this.negative & t.negative) ? (a = this.neg().divmod(t
								.neg(), e), "div" !== e && (s = a.mod.neg(), r && 0 !== s
								.negative && s.isub(t)), {
								div: a.div,
								mod: s
							}) : t.length > this.length || this.cmp(t) < 0 ? {
								div: new o(0),
								mod: this
							} : 1 === t.length ? "div" === e ? {
								div: this.divn(t.words[0]),
								mod: null
							} : "mod" === e ? {
								div: null,
								mod: new o(this.modn(t.words[0]))
							} : {
								div: this.divn(t.words[0]),
								mod: new o(this.modn(t.words[0]))
							} : this._wordDiv(t, e);
							var i, s, a
						}, o.prototype.div = function(t) {
							return this.divmod(t, "div", !1).div
						}, o.prototype.mod = function(t) {
							return this.divmod(t, "mod", !1).mod
						}, o.prototype.umod = function(t) {
							return this.divmod(t, "mod", !0).mod
						}, o.prototype.divRound = function(t) {
							var e = this.divmod(t);
							if (e.mod.isZero()) return e.div;
							var r = 0 !== e.div.negative ? e.mod.isub(t) : e.mod,
								n = t.ushrn(1),
								i = t.andln(1),
								o = r.cmp(n);
							return o < 0 || 1 === i && 0 === o ? e.div : 0 !== e.div.negative ? e
								.div.isubn(1) : e.div.iaddn(1)
						}, o.prototype.modn = function(t) {
							n(t <= 67108863);
							for (var e = (1 << 26) % t, r = 0, i = this.length - 1; i >= 0; i--) r =
								(e * r + (0 | this.words[i])) % t;
							return r
						}, o.prototype.idivn = function(t) {
							n(t <= 67108863);
							for (var e = 0, r = this.length - 1; r >= 0; r--) {
								var i = (0 | this.words[r]) + 67108864 * e;
								this.words[r] = i / t | 0, e = i % t
							}
							return this.strip()
						}, o.prototype.divn = function(t) {
							return this.clone().idivn(t)
						}, o.prototype.egcd = function(t) {
							n(0 === t.negative), n(!t.isZero());
							var e = this,
								r = t.clone();
							e = 0 !== e.negative ? e.umod(t) : e.clone();
							for (var i = new o(1), s = new o(0), a = new o(0), u = new o(1), c =
								0; e.isEven() && r.isEven();) e.iushrn(1), r.iushrn(1), ++c;
							for (var l = r.clone(), h = e.clone(); !e.isZero();) {
								for (var f = 0, d = 1; 0 == (e.words[0] & d) && f < 26; ++f, d <<=
									1);
								if (f > 0)
									for (e.iushrn(f); f-- > 0;)(i.isOdd() || s.isOdd()) && (i.iadd(
										l), s.isub(h)), i.iushrn(1), s.iushrn(1);
								for (var p = 0, m = 1; 0 == (r.words[0] & m) && p < 26; ++p, m <<=
									1);
								if (p > 0)
									for (r.iushrn(p); p-- > 0;)(a.isOdd() || u.isOdd()) && (a.iadd(
										l), u.isub(h)), a.iushrn(1), u.iushrn(1);
								e.cmp(r) >= 0 ? (e.isub(r), i.isub(a), s.isub(u)) : (r.isub(e), a
									.isub(i), u.isub(s))
							}
							return {
								a: a,
								b: u,
								gcd: r.iushln(c)
							}
						}, o.prototype._invmp = function(t) {
							n(0 === t.negative), n(!t.isZero());
							var e = this,
								r = t.clone();
							e = 0 !== e.negative ? e.umod(t) : e.clone();
							for (var i, s = new o(1), a = new o(0), u = r.clone(); e.cmpn(1) > 0 &&
								r.cmpn(1) > 0;) {
								for (var c = 0, l = 1; 0 == (e.words[0] & l) && c < 26; ++c, l <<=
									1);
								if (c > 0)
									for (e.iushrn(c); c-- > 0;) s.isOdd() && s.iadd(u), s.iushrn(1);
								for (var h = 0, f = 1; 0 == (r.words[0] & f) && h < 26; ++h, f <<=
									1);
								if (h > 0)
									for (r.iushrn(h); h-- > 0;) a.isOdd() && a.iadd(u), a.iushrn(1);
								e.cmp(r) >= 0 ? (e.isub(r), s.isub(a)) : (r.isub(e), a.isub(s))
							}
							return (i = 0 === e.cmpn(1) ? s : a).cmpn(0) < 0 && i.iadd(t), i
						}, o.prototype.gcd = function(t) {
							if (this.isZero()) return t.abs();
							if (t.isZero()) return this.abs();
							var e = this.clone(),
								r = t.clone();
							e.negative = 0, r.negative = 0;
							for (var n = 0; e.isEven() && r.isEven(); n++) e.iushrn(1), r.iushrn(1);
							for (;;) {
								for (; e.isEven();) e.iushrn(1);
								for (; r.isEven();) r.iushrn(1);
								var i = e.cmp(r);
								if (i < 0) {
									var o = e;
									e = r, r = o
								} else if (0 === i || 0 === r.cmpn(1)) break;
								e.isub(r)
							}
							return r.iushln(n)
						}, o.prototype.invm = function(t) {
							return this.egcd(t).a.umod(t)
						}, o.prototype.isEven = function() {
							return 0 == (1 & this.words[0])
						}, o.prototype.isOdd = function() {
							return 1 == (1 & this.words[0])
						}, o.prototype.andln = function(t) {
							return this.words[0] & t
						}, o.prototype.bincn = function(t) {
							n("number" == typeof t);
							var e = t % 26,
								r = (t - e) / 26,
								i = 1 << e;
							if (this.length <= r) return this._expand(r + 1), this.words[r] |= i,
								this;
							for (var o = i, s = r; 0 !== o && s < this.length; s++) {
								var a = 0 | this.words[s];
								o = (a += o) >>> 26, a &= 67108863, this.words[s] = a
							}
							return 0 !== o && (this.words[s] = o, this.length++), this
						}, o.prototype.isZero = function() {
							return 1 === this.length && 0 === this.words[0]
						}, o.prototype.cmpn = function(t) {
							var e, r = t < 0;
							if (0 !== this.negative && !r) return -1;
							if (0 === this.negative && r) return 1;
							if (this.strip(), this.length > 1) e = 1;
							else {
								r && (t = -t), n(t <= 67108863, "Number is too big");
								var i = 0 | this.words[0];
								e = i === t ? 0 : i < t ? -1 : 1
							}
							return 0 !== this.negative ? 0 | -e : e
						}, o.prototype.cmp = function(t) {
							if (0 !== this.negative && 0 === t.negative) return -1;
							if (0 === this.negative && 0 !== t.negative) return 1;
							var e = this.ucmp(t);
							return 0 !== this.negative ? 0 | -e : e
						}, o.prototype.ucmp = function(t) {
							if (this.length > t.length) return 1;
							if (this.length < t.length) return -1;
							for (var e = 0, r = this.length - 1; r >= 0; r--) {
								var n = 0 | this.words[r],
									i = 0 | t.words[r];
								if (n !== i) {
									n < i ? e = -1 : n > i && (e = 1);
									break
								}
							}
							return e
						}, o.prototype.gtn = function(t) {
							return 1 === this.cmpn(t)
						}, o.prototype.gt = function(t) {
							return 1 === this.cmp(t)
						}, o.prototype.gten = function(t) {
							return this.cmpn(t) >= 0
						}, o.prototype.gte = function(t) {
							return this.cmp(t) >= 0
						}, o.prototype.ltn = function(t) {
							return -1 === this.cmpn(t)
						}, o.prototype.lt = function(t) {
							return -1 === this.cmp(t)
						}, o.prototype.lten = function(t) {
							return this.cmpn(t) <= 0
						}, o.prototype.lte = function(t) {
							return this.cmp(t) <= 0
						}, o.prototype.eqn = function(t) {
							return 0 === this.cmpn(t)
						}, o.prototype.eq = function(t) {
							return 0 === this.cmp(t)
						}, o.red = function(t) {
							return new x(t)
						}, o.prototype.toRed = function(t) {
							return n(!this.red, "Already a number in reduction context"), n(0 ===
								this.negative, "red works only with positives"), t.convertTo(
								this)._forceRed(t)
						}, o.prototype.fromRed = function() {
							return n(this.red,
									"fromRed works only with numbers in reduction context"), this
								.red.convertFrom(this)
						}, o.prototype._forceRed = function(t) {
							return this.red = t, this
						}, o.prototype.forceRed = function(t) {
							return n(!this.red, "Already a number in reduction context"), this
								._forceRed(t)
						}, o.prototype.redAdd = function(t) {
							return n(this.red, "redAdd works only with red numbers"), this.red.add(
								this, t)
						}, o.prototype.redIAdd = function(t) {
							return n(this.red, "redIAdd works only with red numbers"), this.red
								.iadd(this, t)
						}, o.prototype.redSub = function(t) {
							return n(this.red, "redSub works only with red numbers"), this.red.sub(
								this, t)
						}, o.prototype.redISub = function(t) {
							return n(this.red, "redISub works only with red numbers"), this.red
								.isub(this, t)
						}, o.prototype.redShl = function(t) {
							return n(this.red, "redShl works only with red numbers"), this.red.shl(
								this, t)
						}, o.prototype.redMul = function(t) {
							return n(this.red, "redMul works only with red numbers"), this.red
								._verify2(this, t), this.red.mul(this, t)
						}, o.prototype.redIMul = function(t) {
							return n(this.red, "redMul works only with red numbers"), this.red
								._verify2(this, t), this.red.imul(this, t)
						}, o.prototype.redSqr = function() {
							return n(this.red, "redSqr works only with red numbers"), this.red
								._verify1(this), this.red.sqr(this)
						}, o.prototype.redISqr = function() {
							return n(this.red, "redISqr works only with red numbers"), this.red
								._verify1(this), this.red.isqr(this)
						}, o.prototype.redSqrt = function() {
							return n(this.red, "redSqrt works only with red numbers"), this.red
								._verify1(this), this.red.sqrt(this)
						}, o.prototype.redInvm = function() {
							return n(this.red, "redInvm works only with red numbers"), this.red
								._verify1(this), this.red.invm(this)
						}, o.prototype.redNeg = function() {
							return n(this.red, "redNeg works only with red numbers"), this.red
								._verify1(this), this.red.neg(this)
						}, o.prototype.redPow = function(t) {
							return n(this.red && !t.red, "redPow(normalNum)"), this.red._verify1(
								this), this.red.pow(this, t)
						};
						var y = {
							k256: null,
							p224: null,
							p192: null,
							p25519: null
						};

						function v(t, e) {
							this.name = t, this.p = new o(e, 16), this.n = this.p.bitLength(), this.k =
								new o(1).iushln(this.n).isub(this.p), this.tmp = this._tmp()
						}

						function b() {
							v.call(this, "k256",
								"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f"
								)
						}

						function w() {
							v.call(this, "p224",
								"ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001")
						}

						function E() {
							v.call(this, "p192",
								"ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff")
						}

						function _() {
							v.call(this, "25519",
								"7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed"
								)
						}

						function x(t) {
							if ("string" == typeof t) {
								var e = o._prime(t);
								this.m = e.p, this.prime = e
							} else n(t.gtn(1), "modulus must be greater than 1"), this.m = t, this
								.prime = null
						}

						function A(t) {
							x.call(this, t), this.shift = this.m.bitLength(), this.shift % 26 != 0 && (
									this.shift += 26 - this.shift % 26), this.r = new o(1).iushln(this
									.shift), this.r2 = this.imod(this.r.sqr()), this.rinv = this.r
								._invmp(this.m), this.minv = this.rinv.mul(this.r).isubn(1).div(this.m),
								this.minv = this.minv.umod(this.r), this.minv = this.r.sub(this.minv)
						}
						v.prototype._tmp = function() {
							var t = new o(null);
							return t.words = new Array(Math.ceil(this.n / 13)), t
						}, v.prototype.ireduce = function(t) {
							var e, r = t;
							do {
								this.split(r, this.tmp), e = (r = (r = this.imulK(r)).iadd(this
									.tmp)).bitLength()
							} while (e > this.n);
							var n = e < this.n ? -1 : r.ucmp(this.p);
							return 0 === n ? (r.words[0] = 0, r.length = 1) : n > 0 ? r.isub(this
								.p) : void 0 !== r.strip ? r.strip() : r._strip(), r
						}, v.prototype.split = function(t, e) {
							t.iushrn(this.n, 0, e)
						}, v.prototype.imulK = function(t) {
							return t.imul(this.k)
						}, i(b, v), b.prototype.split = function(t, e) {
							for (var r = 4194303, n = Math.min(t.length, 9), i = 0; i < n; i++) e
								.words[i] = t.words[i];
							if (e.length = n, t.length <= 9) return t.words[0] = 0, void(t.length =
								1);
							var o = t.words[9];
							for (e.words[e.length++] = o & r, i = 10; i < t.length; i++) {
								var s = 0 | t.words[i];
								t.words[i - 10] = (s & r) << 4 | o >>> 22, o = s
							}
							o >>>= 22, t.words[i - 10] = o, 0 === o && t.length > 10 ? t.length -=
								10 : t.length -= 9
						}, b.prototype.imulK = function(t) {
							t.words[t.length] = 0, t.words[t.length + 1] = 0, t.length += 2;
							for (var e = 0, r = 0; r < t.length; r++) {
								var n = 0 | t.words[r];
								e += 977 * n, t.words[r] = 67108863 & e, e = 64 * n + (e /
									67108864 | 0)
							}
							return 0 === t.words[t.length - 1] && (t.length--, 0 === t.words[t
								.length - 1] && t.length--), t
						}, i(w, v), i(E, v), i(_, v), _.prototype.imulK = function(t) {
							for (var e = 0, r = 0; r < t.length; r++) {
								var n = 19 * (0 | t.words[r]) + e,
									i = 67108863 & n;
								n >>>= 26, t.words[r] = i, e = n
							}
							return 0 !== e && (t.words[t.length++] = e), t
						}, o._prime = function(t) {
							if (y[t]) return y[t];
							var e;
							if ("k256" === t) e = new b;
							else if ("p224" === t) e = new w;
							else if ("p192" === t) e = new E;
							else {
								if ("p25519" !== t) throw new Error("Unknown prime " + t);
								e = new _
							}
							return y[t] = e, e
						}, x.prototype._verify1 = function(t) {
							n(0 === t.negative, "red works only with positives"), n(t.red,
								"red works only with red numbers")
						}, x.prototype._verify2 = function(t, e) {
							n(0 == (t.negative | e.negative), "red works only with positives"), n(t
								.red && t.red === e.red, "red works only with red numbers")
						}, x.prototype.imod = function(t) {
							return this.prime ? this.prime.ireduce(t)._forceRed(this) : t.umod(this
								.m)._forceRed(this)
						}, x.prototype.neg = function(t) {
							return t.isZero() ? t.clone() : this.m.sub(t)._forceRed(this)
						}, x.prototype.add = function(t, e) {
							this._verify2(t, e);
							var r = t.add(e);
							return r.cmp(this.m) >= 0 && r.isub(this.m), r._forceRed(this)
						}, x.prototype.iadd = function(t, e) {
							this._verify2(t, e);
							var r = t.iadd(e);
							return r.cmp(this.m) >= 0 && r.isub(this.m), r
						}, x.prototype.sub = function(t, e) {
							this._verify2(t, e);
							var r = t.sub(e);
							return r.cmpn(0) < 0 && r.iadd(this.m), r._forceRed(this)
						}, x.prototype.isub = function(t, e) {
							this._verify2(t, e);
							var r = t.isub(e);
							return r.cmpn(0) < 0 && r.iadd(this.m), r
						}, x.prototype.shl = function(t, e) {
							return this._verify1(t), this.imod(t.ushln(e))
						}, x.prototype.imul = function(t, e) {
							return this._verify2(t, e), this.imod(t.imul(e))
						}, x.prototype.mul = function(t, e) {
							return this._verify2(t, e), this.imod(t.mul(e))
						}, x.prototype.isqr = function(t) {
							return this.imul(t, t.clone())
						}, x.prototype.sqr = function(t) {
							return this.mul(t, t)
						}, x.prototype.sqrt = function(t) {
							if (t.isZero()) return t.clone();
							var e = this.m.andln(3);
							if (n(e % 2 == 1), 3 === e) {
								var r = this.m.add(new o(1)).iushrn(2);
								return this.pow(t, r)
							}
							for (var i = this.m.subn(1), s = 0; !i.isZero() && 0 === i.andln(1);)
								s++, i.iushrn(1);
							n(!i.isZero());
							var a = new o(1).toRed(this),
								u = a.redNeg(),
								c = this.m.subn(1).iushrn(1),
								l = this.m.bitLength();
							for (l = new o(2 * l * l).toRed(this); 0 !== this.pow(l, c).cmp(u);) l
								.redIAdd(u);
							for (var h = this.pow(l, i), f = this.pow(t, i.addn(1).iushrn(1)), d =
									this.pow(t, i), p = s; 0 !== d.cmp(a);) {
								for (var m = d, g = 0; 0 !== m.cmp(a); g++) m = m.redSqr();
								n(g < p);
								var y = this.pow(h, new o(1).iushln(p - g - 1));
								f = f.redMul(y), h = y.redSqr(), d = d.redMul(h), p = g
							}
							return f
						}, x.prototype.invm = function(t) {
							var e = t._invmp(this.m);
							return 0 !== e.negative ? (e.negative = 0, this.imod(e).redNeg()) : this
								.imod(e)
						}, x.prototype.pow = function(t, e) {
							if (e.isZero()) return new o(1).toRed(this);
							if (0 === e.cmpn(1)) return t.clone();
							var r = new Array(16);
							r[0] = new o(1).toRed(this), r[1] = t;
							for (var n = 2; n < r.length; n++) r[n] = this.mul(r[n - 1], t);
							var i = r[0],
								s = 0,
								a = 0,
								u = e.bitLength() % 26;
							for (0 === u && (u = 26), n = e.length - 1; n >= 0; n--) {
								for (var c = e.words[n], l = u - 1; l >= 0; l--) {
									var h = c >> l & 1;
									i !== r[0] && (i = this.sqr(i)), 0 !== h || 0 !== s ? (s <<= 1,
										s |= h, (4 === ++a || 0 === n && 0 === l) && (i = this
											.mul(i, r[s]), a = 0, s = 0)) : a = 0
								}
								u = 26
							}
							return i
						}, x.prototype.convertTo = function(t) {
							var e = t.umod(this.m);
							return e === t ? e.clone() : e
						}, x.prototype.convertFrom = function(t) {
							var e = t.clone();
							return e.red = null, e
						}, o.mont = function(t) {
							return new A(t)
						}, i(A, x), A.prototype.convertTo = function(t) {
							return this.imod(t.ushln(this.shift))
						}, A.prototype.convertFrom = function(t) {
							var e = this.imod(t.mul(this.rinv));
							return e.red = null, e
						}, A.prototype.imul = function(t, e) {
							if (t.isZero() || e.isZero()) return t.words[0] = 0, t.length = 1, t;
							var r = t.imul(e),
								n = r.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this
									.m),
								i = r.isub(n).iushrn(this.shift),
								o = i;
							return i.cmp(this.m) >= 0 ? o = i.isub(this.m) : i.cmpn(0) < 0 && (o = i
								.iadd(this.m)), o._forceRed(this)
						}, A.prototype.mul = function(t, e) {
							if (t.isZero() || e.isZero()) return new o(0)._forceRed(this);
							var r = t.mul(e),
								n = r.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this
									.m),
								i = r.isub(n).iushrn(this.shift),
								s = i;
							return i.cmp(this.m) >= 0 ? s = i.isub(this.m) : i.cmpn(0) < 0 && (s = i
								.iadd(this.m)), s._forceRed(this)
						}, A.prototype.invm = function(t) {
							return this.imod(t._invmp(this.m).mul(this.r2))._forceRed(this)
						}
					}(t = r.nmd(t), this)
				},
				1924: function(t, e, r) {
					"use strict";
					var n = r(210),
						i = r(5559),
						o = i(n("String.prototype.indexOf"));
					t.exports = function(t, e) {
						var r = n(t, !!e);
						return "function" == typeof r && o(t, ".prototype.") > -1 ? i(r) : r
					}
				},
				5559: function(t, e, r) {
					"use strict";
					var n = r(8612),
						i = r(210),
						o = i("%Function.prototype.apply%"),
						s = i("%Function.prototype.call%"),
						a = i("%Reflect.apply%", !0) || n.call(s, o),
						u = i("%Object.getOwnPropertyDescriptor%", !0),
						c = i("%Object.defineProperty%", !0),
						l = i("%Math.max%");
					if (c) try {
						c({}, "a", {
							value: 1
						})
					} catch (t) {
						c = null
					}
					t.exports = function(t) {
						var e = a(n, s, arguments);
						if (u && c) {
							var r = u(e, "length");
							r.configurable && c(e, "length", {
								value: 1 + l(0, t.length - (arguments.length - 1))
							})
						}
						return e
					};
					var h = function() {
						return a(n, o, arguments)
					};
					c ? c(t.exports, "apply", {
						value: h
					}) : t.exports.apply = h
				},
				7648: function(t) {
					"use strict";
					var e = "Function.prototype.bind called on incompatible ",
						r = Array.prototype.slice,
						n = Object.prototype.toString,
						i = "[object Function]";
					t.exports = function(t) {
						var o = this;
						if ("function" != typeof o || n.call(o) !== i) throw new TypeError(e + o);
						for (var s, a = r.call(arguments, 1), u = function() {
								if (this instanceof s) {
									var e = o.apply(this, a.concat(r.call(arguments)));
									return Object(e) === e ? e : this
								}
								return o.apply(t, a.concat(r.call(arguments)))
							}, c = Math.max(0, o.length - a.length), l = [], h = 0; h < c; h++) l
							.push("$" + h);
						if (s = Function("binder", "return function (" + l.join(",") +
								"){ return binder.apply(this,arguments); }")(u), o.prototype) {
							var f = function() {};
							f.prototype = o.prototype, s.prototype = new f, f.prototype = null
						}
						return s
					}
				},
				8612: function(t, e, r) {
					"use strict";
					var n = r(7648);
					t.exports = Function.prototype.bind || n
				},
				210: function(t, e, r) {
					"use strict";
					var n, i = SyntaxError,
						o = Function,
						s = TypeError,
						a = function(t) {
							try {
								return o('"use strict"; return (' + t + ").constructor;")()
							} catch (t) {}
						},
						u = Object.getOwnPropertyDescriptor;
					if (u) try {
						u({}, "")
					} catch (t) {
						u = null
					}
					var c = function() {
							throw new s
						},
						l = u ? function() {
							try {
								return c
							} catch (t) {
								try {
									return u(arguments, "callee").get
								} catch (t) {
									return c
								}
							}
						}() : c,
						h = r(1405)(),
						f = Object.getPrototypeOf || function(t) {
							return t.__proto__
						},
						d = {},
						p = "undefined" == typeof Uint8Array ? n : f(Uint8Array),
						m = {
							"%AggregateError%": "undefined" == typeof AggregateError ? n :
								AggregateError,
							"%Array%": Array,
							"%ArrayBuffer%": "undefined" == typeof ArrayBuffer ? n : ArrayBuffer,
							"%ArrayIteratorPrototype%": h ? f([][Symbol.iterator]()) : n,
							"%AsyncFromSyncIteratorPrototype%": n,
							"%AsyncFunction%": d,
							"%AsyncGenerator%": d,
							"%AsyncGeneratorFunction%": d,
							"%AsyncIteratorPrototype%": d,
							"%Atomics%": "undefined" == typeof Atomics ? n : Atomics,
							"%BigInt%": "undefined" == typeof BigInt ? n : BigInt,
							"%Boolean%": Boolean,
							"%DataView%": "undefined" == typeof DataView ? n : DataView,
							"%Date%": Date,
							"%decodeURI%": decodeURI,
							"%decodeURIComponent%": decodeURIComponent,
							"%encodeURI%": encodeURI,
							"%encodeURIComponent%": encodeURIComponent,
							"%Error%": Error,
							"%eval%": eval,
							"%EvalError%": EvalError,
							"%Float32Array%": "undefined" == typeof Float32Array ? n : Float32Array,
							"%Float64Array%": "undefined" == typeof Float64Array ? n : Float64Array,
							"%FinalizationRegistry%": "undefined" == typeof FinalizationRegistry ? n :
								FinalizationRegistry,
							"%Function%": o,
							"%GeneratorFunction%": d,
							"%Int8Array%": "undefined" == typeof Int8Array ? n : Int8Array,
							"%Int16Array%": "undefined" == typeof Int16Array ? n : Int16Array,
							"%Int32Array%": "undefined" == typeof Int32Array ? n : Int32Array,
							"%isFinite%": isFinite,
							"%isNaN%": isNaN,
							"%IteratorPrototype%": h ? f(f([][Symbol.iterator]())) : n,
							"%JSON%": "object" == typeof JSON ? JSON : n,
							"%Map%": "undefined" == typeof Map ? n : Map,
							"%MapIteratorPrototype%": "undefined" != typeof Map && h ? f((new Map)[
								Symbol.iterator]()) : n,
							"%Math%": Math,
							"%Number%": Number,
							"%Object%": Object,
							"%parseFloat%": parseFloat,
							"%parseInt%": parseInt,
							"%Promise%": "undefined" == typeof Promise ? n : Promise,
							"%Proxy%": "undefined" == typeof Proxy ? n : Proxy,
							"%RangeError%": RangeError,
							"%ReferenceError%": ReferenceError,
							"%Reflect%": "undefined" == typeof Reflect ? n : Reflect,
							"%RegExp%": RegExp,
							"%Set%": "undefined" == typeof Set ? n : Set,
							"%SetIteratorPrototype%": "undefined" != typeof Set && h ? f((new Set)[
								Symbol.iterator]()) : n,
							"%SharedArrayBuffer%": "undefined" == typeof SharedArrayBuffer ? n :
								SharedArrayBuffer,
							"%String%": String,
							"%StringIteratorPrototype%": h ? f("" [Symbol.iterator]()) : n,
							"%Symbol%": h ? Symbol : n,
							"%SyntaxError%": i,
							"%ThrowTypeError%": l,
							"%TypedArray%": p,
							"%TypeError%": s,
							"%Uint8Array%": "undefined" == typeof Uint8Array ? n : Uint8Array,
							"%Uint8ClampedArray%": "undefined" == typeof Uint8ClampedArray ? n :
								Uint8ClampedArray,
							"%Uint16Array%": "undefined" == typeof Uint16Array ? n : Uint16Array,
							"%Uint32Array%": "undefined" == typeof Uint32Array ? n : Uint32Array,
							"%URIError%": URIError,
							"%WeakMap%": "undefined" == typeof WeakMap ? n : WeakMap,
							"%WeakRef%": "undefined" == typeof WeakRef ? n : WeakRef,
							"%WeakSet%": "undefined" == typeof WeakSet ? n : WeakSet
						},
						g = function t(e) {
							var r;
							if ("%AsyncFunction%" === e) r = a("async function () {}");
							else if ("%GeneratorFunction%" === e) r = a("function* () {}");
							else if ("%AsyncGeneratorFunction%" === e) r = a("async function* () {}");
							else if ("%AsyncGenerator%" === e) {
								var n = t("%AsyncGeneratorFunction%");
								n && (r = n.prototype)
							} else if ("%AsyncIteratorPrototype%" === e) {
								var i = t("%AsyncGenerator%");
								i && (r = f(i.prototype))
							}
							return m[e] = r, r
						},
						y = {
							"%ArrayBufferPrototype%": ["ArrayBuffer", "prototype"],
							"%ArrayPrototype%": ["Array", "prototype"],
							"%ArrayProto_entries%": ["Array", "prototype", "entries"],
							"%ArrayProto_forEach%": ["Array", "prototype", "forEach"],
							"%ArrayProto_keys%": ["Array", "prototype", "keys"],
							"%ArrayProto_values%": ["Array", "prototype", "values"],
							"%AsyncFunctionPrototype%": ["AsyncFunction", "prototype"],
							"%AsyncGenerator%": ["AsyncGeneratorFunction", "prototype"],
							"%AsyncGeneratorPrototype%": ["AsyncGeneratorFunction", "prototype",
								"prototype"
							],
							"%BooleanPrototype%": ["Boolean", "prototype"],
							"%DataViewPrototype%": ["DataView", "prototype"],
							"%DatePrototype%": ["Date", "prototype"],
							"%ErrorPrototype%": ["Error", "prototype"],
							"%EvalErrorPrototype%": ["EvalError", "prototype"],
							"%Float32ArrayPrototype%": ["Float32Array", "prototype"],
							"%Float64ArrayPrototype%": ["Float64Array", "prototype"],
							"%FunctionPrototype%": ["Function", "prototype"],
							"%Generator%": ["GeneratorFunction", "prototype"],
							"%GeneratorPrototype%": ["GeneratorFunction", "prototype", "prototype"],
							"%Int8ArrayPrototype%": ["Int8Array", "prototype"],
							"%Int16ArrayPrototype%": ["Int16Array", "prototype"],
							"%Int32ArrayPrototype%": ["Int32Array", "prototype"],
							"%JSONParse%": ["JSON", "parse"],
							"%JSONStringify%": ["JSON", "stringify"],
							"%MapPrototype%": ["Map", "prototype"],
							"%NumberPrototype%": ["Number", "prototype"],
							"%ObjectPrototype%": ["Object", "prototype"],
							"%ObjProto_toString%": ["Object", "prototype", "toString"],
							"%ObjProto_valueOf%": ["Object", "prototype", "valueOf"],
							"%PromisePrototype%": ["Promise", "prototype"],
							"%PromiseProto_then%": ["Promise", "prototype", "then"],
							"%Promise_all%": ["Promise", "all"],
							"%Promise_reject%": ["Promise", "reject"],
							"%Promise_resolve%": ["Promise", "resolve"],
							"%RangeErrorPrototype%": ["RangeError", "prototype"],
							"%ReferenceErrorPrototype%": ["ReferenceError", "prototype"],
							"%RegExpPrototype%": ["RegExp", "prototype"],
							"%SetPrototype%": ["Set", "prototype"],
							"%SharedArrayBufferPrototype%": ["SharedArrayBuffer", "prototype"],
							"%StringPrototype%": ["String", "prototype"],
							"%SymbolPrototype%": ["Symbol", "prototype"],
							"%SyntaxErrorPrototype%": ["SyntaxError", "prototype"],
							"%TypedArrayPrototype%": ["TypedArray", "prototype"],
							"%TypeErrorPrototype%": ["TypeError", "prototype"],
							"%Uint8ArrayPrototype%": ["Uint8Array", "prototype"],
							"%Uint8ClampedArrayPrototype%": ["Uint8ClampedArray", "prototype"],
							"%Uint16ArrayPrototype%": ["Uint16Array", "prototype"],
							"%Uint32ArrayPrototype%": ["Uint32Array", "prototype"],
							"%URIErrorPrototype%": ["URIError", "prototype"],
							"%WeakMapPrototype%": ["WeakMap", "prototype"],
							"%WeakSetPrototype%": ["WeakSet", "prototype"]
						},
						v = r(8612),
						b = r(7642),
						w = v.call(Function.call, Array.prototype.concat),
						E = v.call(Function.apply, Array.prototype.splice),
						_ = v.call(Function.call, String.prototype.replace),
						x = v.call(Function.call, String.prototype.slice),
						A =
						/[^%.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|%$))/g,
						k = /\\(\\)?/g,
						N = function(t) {
							var e = x(t, 0, 1),
								r = x(t, -1);
							if ("%" === e && "%" !== r) throw new i(
								"invalid intrinsic syntax, expected closing `%`");
							if ("%" === r && "%" !== e) throw new i(
								"invalid intrinsic syntax, expected opening `%`");
							var n = [];
							return _(t, A, (function(t, e, r, i) {
								n[n.length] = r ? _(i, k, "$1") : e || t
							})), n
						},
						S = function(t, e) {
							var r, n = t;
							if (b(y, n) && (n = "%" + (r = y[n])[0] + "%"), b(m, n)) {
								var o = m[n];
								if (o === d && (o = g(n)), void 0 === o && !e) throw new s(
									"intrinsic " + t +
									" exists, but is not available. Please file an issue!");
								return {
									alias: r,
									name: n,
									value: o
								}
							}
							throw new i("intrinsic " + t + " does not exist!")
						};
					t.exports = function(t, e) {
						if ("string" != typeof t || 0 === t.length) throw new s(
							"intrinsic name must be a non-empty string");
						if (arguments.length > 1 && "boolean" != typeof e) throw new s(
							'"allowMissing" argument must be a boolean');
						var r = N(t),
							n = r.length > 0 ? r[0] : "",
							o = S("%" + n + "%", e),
							a = o.name,
							c = o.value,
							l = !1,
							h = o.alias;
						h && (n = h[0], E(r, w([0, 1], h)));
						for (var f = 1, d = !0; f < r.length; f += 1) {
							var p = r[f],
								g = x(p, 0, 1),
								y = x(p, -1);
							if (('"' === g || "'" === g || "`" === g || '"' === y || "'" === y ||
									"`" === y) && g !== y) throw new i(
								"property names with quotes must have matching quotes");
							if ("constructor" !== p && d || (l = !0), b(m, a = "%" + (n += "." +
									p) + "%")) c = m[a];
							else if (null != c) {
								if (!(p in c)) {
									if (!e) throw new s("base intrinsic for " + t +
										" exists, but the property is not available.");
									return
								}
								if (u && f + 1 >= r.length) {
									var v = u(c, p);
									c = (d = !!v) && "get" in v && !("originalValue" in v.get) ? v
										.get : c[p]
								} else d = b(c, p), c = c[p];
								d && !l && (m[a] = c)
							}
						}
						return c
					}
				},
				1405: function(t, e, r) {
					"use strict";
					var n = "undefined" != typeof Symbol && Symbol,
						i = r(5419);
					t.exports = function() {
						return "function" == typeof n && ("function" == typeof Symbol && (
							"symbol" == typeof n("foo") && ("symbol" == typeof Symbol(
								"bar") && i())))
					}
				},
				5419: function(t) {
					"use strict";
					t.exports = function() {
						if ("function" != typeof Symbol || "function" != typeof Object
							.getOwnPropertySymbols) return !1;
						if ("symbol" == typeof Symbol.iterator) return !0;
						var t = {},
							e = Symbol("test"),
							r = Object(e);
						if ("string" == typeof e) return !1;
						if ("[object Symbol]" !== Object.prototype.toString.call(e)) return !1;
						if ("[object Symbol]" !== Object.prototype.toString.call(r)) return !1;
						for (e in t[e] = 42, t) return !1;
						if ("function" == typeof Object.keys && 0 !== Object.keys(t).length)
						return !1;
						if ("function" == typeof Object.getOwnPropertyNames && 0 !== Object
							.getOwnPropertyNames(t).length) return !1;
						var n = Object.getOwnPropertySymbols(t);
						if (1 !== n.length || n[0] !== e) return !1;
						if (!Object.prototype.propertyIsEnumerable.call(t, e)) return !1;
						if ("function" == typeof Object.getOwnPropertyDescriptor) {
							var i = Object.getOwnPropertyDescriptor(t, e);
							if (42 !== i.value || !0 !== i.enumerable) return !1
						}
						return !0
					}
				},
				7642: function(t, e, r) {
					"use strict";
					var n = r(8612);
					t.exports = n.call(Function.call, Object.prototype.hasOwnProperty)
				},
				3715: function(t, e, r) {
					var n = e;
					n.utils = r(6436), n.common = r(5772), n.sha = r(9041), n.ripemd = r(2949), n.hmac =
						r(2344), n.sha1 = n.sha.sha1, n.sha256 = n.sha.sha256, n.sha224 = n.sha.sha224,
						n.sha384 = n.sha.sha384, n.sha512 = n.sha.sha512, n.ripemd160 = n.ripemd
						.ripemd160
				},
				5772: function(t, e, r) {
					"use strict";
					var n = r(6436),
						i = r(9746);

					function o() {
						this.pending = null, this.pendingTotal = 0, this.blockSize = this.constructor
							.blockSize, this.outSize = this.constructor.outSize, this.hmacStrength =
							this.constructor.hmacStrength, this.padLength = this.constructor.padLength /
							8, this.endian = "big", this._delta8 = this.blockSize / 8, this._delta32 =
							this.blockSize / 32
					}
					e.BlockHash = o, o.prototype.update = function(t, e) {
						if (t = n.toArray(t, e), this.pending ? this.pending = this.pending.concat(
								t) : this.pending = t, this.pendingTotal += t.length, this.pending
							.length >= this._delta8) {
							var r = (t = this.pending).length % this._delta8;
							this.pending = t.slice(t.length - r, t.length), 0 === this.pending
								.length && (this.pending = null), t = n.join32(t, 0, t.length - r,
									this.endian);
							for (var i = 0; i < t.length; i += this._delta32) this._update(t, i, i +
								this._delta32)
						}
						return this
					}, o.prototype.digest = function(t) {
						return this.update(this._pad()), i(null === this.pending), this._digest(t)
					}, o.prototype._pad = function() {
						var t = this.pendingTotal,
							e = this._delta8,
							r = e - (t + this.padLength) % e,
							n = new Array(r + this.padLength);
						n[0] = 128;
						for (var i = 1; i < r; i++) n[i] = 0;
						if (t <<= 3, "big" === this.endian) {
							for (var o = 8; o < this.padLength; o++) n[i++] = 0;
							n[i++] = 0, n[i++] = 0, n[i++] = 0, n[i++] = 0, n[i++] = t >>> 24 & 255,
								n[i++] = t >>> 16 & 255, n[i++] = t >>> 8 & 255, n[i++] = 255 & t
						} else
							for (n[i++] = 255 & t, n[i++] = t >>> 8 & 255, n[i++] = t >>> 16 & 255,
								n[i++] = t >>> 24 & 255, n[i++] = 0, n[i++] = 0, n[i++] = 0, n[
								i++] = 0, o = 8; o < this.padLength; o++) n[i++] = 0;
						return n
					}
				},
				2344: function(t, e, r) {
					"use strict";
					var n = r(6436),
						i = r(9746);

					function o(t, e, r) {
						if (!(this instanceof o)) return new o(t, e, r);
						this.Hash = t, this.blockSize = t.blockSize / 8, this.outSize = t.outSize / 8,
							this.inner = null, this.outer = null, this._init(n.toArray(e, r))
					}
					t.exports = o, o.prototype._init = function(t) {
						t.length > this.blockSize && (t = (new this.Hash).update(t).digest()), i(t
							.length <= this.blockSize);
						for (var e = t.length; e < this.blockSize; e++) t.push(0);
						for (e = 0; e < t.length; e++) t[e] ^= 54;
						for (this.inner = (new this.Hash).update(t), e = 0; e < t.length; e++) t[
							e] ^= 106;
						this.outer = (new this.Hash).update(t)
					}, o.prototype.update = function(t, e) {
						return this.inner.update(t, e), this
					}, o.prototype.digest = function(t) {
						return this.outer.update(this.inner.digest()), this.outer.digest(t)
					}
				},
				2949: function(t, e, r) {
					"use strict";
					var n = r(6436),
						i = r(5772),
						o = n.rotl32,
						s = n.sum32,
						a = n.sum32_3,
						u = n.sum32_4,
						c = i.BlockHash;

					function l() {
						if (!(this instanceof l)) return new l;
						c.call(this), this.h = [1732584193, 4023233417, 2562383102, 271733878,
							3285377520
						], this.endian = "little"
					}

					function h(t, e, r, n) {
						return t <= 15 ? e ^ r ^ n : t <= 31 ? e & r | ~e & n : t <= 47 ? (e | ~r) ^ n :
							t <= 63 ? e & n | r & ~n : e ^ (r | ~n)
					}

					function f(t) {
						return t <= 15 ? 0 : t <= 31 ? 1518500249 : t <= 47 ? 1859775393 : t <= 63 ?
							2400959708 : 2840853838
					}

					function d(t) {
						return t <= 15 ? 1352829926 : t <= 31 ? 1548603684 : t <= 47 ? 1836072691 : t <=
							63 ? 2053994217 : 0
					}
					n.inherits(l, c), e.ripemd160 = l, l.blockSize = 512, l.outSize = 160, l
						.hmacStrength = 192, l.padLength = 64, l.prototype._update = function(t, e) {
							for (var r = this.h[0], n = this.h[1], i = this.h[2], c = this.h[3], l =
									this.h[4], v = r, b = n, w = i, E = c, _ = l, x = 0; x < 80; x++) {
								var A = s(o(u(r, h(x, n, i, c), t[p[x] + e], f(x)), g[x]), l);
								r = l, l = c, c = o(i, 10), i = n, n = A, A = s(o(u(v, h(79 - x, b, w,
										E), t[m[x] + e], d(x)), y[x]), _), v = _, _ = E, E = o(w, 10),
									w = b, b = A
							}
							A = a(this.h[1], i, E), this.h[1] = a(this.h[2], c, _), this.h[2] = a(this
								.h[3], l, v), this.h[3] = a(this.h[4], r, b), this.h[4] = a(this.h[
								0], n, w), this.h[0] = A
						}, l.prototype._digest = function(t) {
							return "hex" === t ? n.toHex32(this.h, "little") : n.split32(this.h,
								"little")
						};
					var p = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 7, 4, 13, 1, 10, 6,
							15, 3, 12, 0, 9, 5, 2, 14, 11, 8, 3, 10, 14, 4, 9, 15, 8, 1, 2, 7, 0, 6, 13,
							11, 5, 12, 1, 9, 11, 10, 0, 8, 12, 4, 13, 3, 7, 15, 14, 5, 6, 2, 4, 0, 5, 9,
							7, 12, 2, 10, 14, 1, 3, 8, 11, 6, 15, 13
						],
						m = [5, 14, 7, 0, 9, 2, 11, 4, 13, 6, 15, 8, 1, 10, 3, 12, 6, 11, 3, 7, 0, 13,
							5, 10, 14, 15, 8, 12, 4, 9, 1, 2, 15, 5, 1, 3, 7, 14, 6, 9, 11, 8, 12, 2,
							10, 0, 4, 13, 8, 6, 4, 1, 3, 11, 15, 0, 5, 12, 2, 13, 9, 7, 10, 14, 12, 15,
							10, 4, 1, 5, 8, 7, 6, 2, 13, 14, 0, 3, 9, 11
						],
						g = [11, 14, 15, 12, 5, 8, 7, 9, 11, 13, 14, 15, 6, 7, 9, 8, 7, 6, 8, 13, 11, 9,
							7, 15, 7, 12, 15, 9, 11, 7, 13, 12, 11, 13, 6, 7, 14, 9, 13, 15, 14, 8, 13,
							6, 5, 12, 7, 5, 11, 12, 14, 15, 14, 15, 9, 8, 9, 14, 5, 6, 8, 6, 5, 12, 9,
							15, 5, 11, 6, 8, 13, 12, 5, 12, 13, 14, 11, 8, 5, 6
						],
						y = [8, 9, 9, 11, 13, 15, 15, 5, 7, 7, 8, 11, 14, 14, 12, 6, 9, 13, 15, 7, 12,
							8, 9, 11, 7, 7, 12, 7, 6, 15, 13, 11, 9, 7, 15, 11, 8, 6, 6, 14, 12, 13, 5,
							14, 13, 13, 7, 5, 15, 5, 8, 11, 14, 14, 6, 14, 6, 9, 12, 9, 12, 5, 15, 8, 8,
							5, 12, 9, 12, 5, 14, 6, 8, 13, 6, 5, 15, 13, 11, 11
						]
				},
				9041: function(t, e, r) {
					"use strict";
					e.sha1 = r(4761), e.sha224 = r(799), e.sha256 = r(9344), e.sha384 = r(772), e
						.sha512 = r(5900)
				},
				4761: function(t, e, r) {
					"use strict";
					var n = r(6436),
						i = r(5772),
						o = r(7038),
						s = n.rotl32,
						a = n.sum32,
						u = n.sum32_5,
						c = o.ft_1,
						l = i.BlockHash,
						h = [1518500249, 1859775393, 2400959708, 3395469782];

					function f() {
						if (!(this instanceof f)) return new f;
						l.call(this), this.h = [1732584193, 4023233417, 2562383102, 271733878,
							3285377520
						], this.W = new Array(80)
					}
					n.inherits(f, l), t.exports = f, f.blockSize = 512, f.outSize = 160, f
						.hmacStrength = 80, f.padLength = 64, f.prototype._update = function(t, e) {
							for (var r = this.W, n = 0; n < 16; n++) r[n] = t[e + n];
							for (; n < r.length; n++) r[n] = s(r[n - 3] ^ r[n - 8] ^ r[n - 14] ^ r[n -
								16], 1);
							var i = this.h[0],
								o = this.h[1],
								l = this.h[2],
								f = this.h[3],
								d = this.h[4];
							for (n = 0; n < r.length; n++) {
								var p = ~~(n / 20),
									m = u(s(i, 5), c(p, o, l, f), d, r[n], h[p]);
								d = f, f = l, l = s(o, 30), o = i, i = m
							}
							this.h[0] = a(this.h[0], i), this.h[1] = a(this.h[1], o), this.h[2] = a(this
								.h[2], l), this.h[3] = a(this.h[3], f), this.h[4] = a(this.h[4], d)
						}, f.prototype._digest = function(t) {
							return "hex" === t ? n.toHex32(this.h, "big") : n.split32(this.h, "big")
						}
				},
				799: function(t, e, r) {
					"use strict";
					var n = r(6436),
						i = r(9344);

					function o() {
						if (!(this instanceof o)) return new o;
						i.call(this), this.h = [3238371032, 914150663, 812702999, 4144912697,
							4290775857, 1750603025, 1694076839, 3204075428
						]
					}
					n.inherits(o, i), t.exports = o, o.blockSize = 512, o.outSize = 224, o
						.hmacStrength = 192, o.padLength = 64, o.prototype._digest = function(t) {
							return "hex" === t ? n.toHex32(this.h.slice(0, 7), "big") : n.split32(this.h
								.slice(0, 7), "big")
						}
				},
				9344: function(t, e, r) {
					"use strict";
					var n = r(6436),
						i = r(5772),
						o = r(7038),
						s = r(9746),
						a = n.sum32,
						u = n.sum32_4,
						c = n.sum32_5,
						l = o.ch32,
						h = o.maj32,
						f = o.s0_256,
						d = o.s1_256,
						p = o.g0_256,
						m = o.g1_256,
						g = i.BlockHash,
						y = [1116352408, 1899447441, 3049323471, 3921009573, 961987163, 1508970993,
							2453635748, 2870763221, 3624381080, 310598401, 607225278, 1426881987,
							1925078388, 2162078206, 2614888103, 3248222580, 3835390401, 4022224774,
							264347078, 604807628, 770255983, 1249150122, 1555081692, 1996064986,
							2554220882, 2821834349, 2952996808, 3210313671, 3336571891, 3584528711,
							113926993, 338241895, 666307205, 773529912, 1294757372, 1396182291,
							1695183700, 1986661051, 2177026350, 2456956037, 2730485921, 2820302411,
							3259730800, 3345764771, 3516065817, 3600352804, 4094571909, 275423344,
							430227734, 506948616, 659060556, 883997877, 958139571, 1322822218,
							1537002063, 1747873779, 1955562222, 2024104815, 2227730452, 2361852424,
							2428436474, 2756734187, 3204031479, 3329325298
						];

					function v() {
						if (!(this instanceof v)) return new v;
						g.call(this), this.h = [1779033703, 3144134277, 1013904242, 2773480762,
							1359893119, 2600822924, 528734635, 1541459225
						], this.k = y, this.W = new Array(64)
					}
					n.inherits(v, g), t.exports = v, v.blockSize = 512, v.outSize = 256, v
						.hmacStrength = 192, v.padLength = 64, v.prototype._update = function(t, e) {
							for (var r = this.W, n = 0; n < 16; n++) r[n] = t[e + n];
							for (; n < r.length; n++) r[n] = u(m(r[n - 2]), r[n - 7], p(r[n - 15]), r[
								n - 16]);
							var i = this.h[0],
								o = this.h[1],
								g = this.h[2],
								y = this.h[3],
								v = this.h[4],
								b = this.h[5],
								w = this.h[6],
								E = this.h[7];
							for (s(this.k.length === r.length), n = 0; n < r.length; n++) {
								var _ = c(E, d(v), l(v, b, w), this.k[n], r[n]),
									x = a(f(i), h(i, o, g));
								E = w, w = b, b = v, v = a(y, _), y = g, g = o, o = i, i = a(_, x)
							}
							this.h[0] = a(this.h[0], i), this.h[1] = a(this.h[1], o), this.h[2] = a(this
									.h[2], g), this.h[3] = a(this.h[3], y), this.h[4] = a(this.h[4], v),
								this.h[5] = a(this.h[5], b), this.h[6] = a(this.h[6], w), this.h[7] = a(
									this.h[7], E)
						}, v.prototype._digest = function(t) {
							return "hex" === t ? n.toHex32(this.h, "big") : n.split32(this.h, "big")
						}
				},
				772: function(t, e, r) {
					"use strict";
					var n = r(6436),
						i = r(5900);

					function o() {
						if (!(this instanceof o)) return new o;
						i.call(this), this.h = [3418070365, 3238371032, 1654270250, 914150663,
							2438529370, 812702999, 355462360, 4144912697, 1731405415, 4290775857,
							2394180231, 1750603025, 3675008525, 1694076839, 1203062813, 3204075428
						]
					}
					n.inherits(o, i), t.exports = o, o.blockSize = 1024, o.outSize = 384, o
						.hmacStrength = 192, o.padLength = 128, o.prototype._digest = function(t) {
							return "hex" === t ? n.toHex32(this.h.slice(0, 12), "big") : n.split32(this
								.h.slice(0, 12), "big")
						}
				},
				5900: function(t, e, r) {
					"use strict";
					var n = r(6436),
						i = r(5772),
						o = r(9746),
						s = n.rotr64_hi,
						a = n.rotr64_lo,
						u = n.shr64_hi,
						c = n.shr64_lo,
						l = n.sum64,
						h = n.sum64_hi,
						f = n.sum64_lo,
						d = n.sum64_4_hi,
						p = n.sum64_4_lo,
						m = n.sum64_5_hi,
						g = n.sum64_5_lo,
						y = i.BlockHash,
						v = [1116352408, 3609767458, 1899447441, 602891725, 3049323471, 3964484399,
							3921009573, 2173295548, 961987163, 4081628472, 1508970993, 3053834265,
							2453635748, 2937671579, 2870763221, 3664609560, 3624381080, 2734883394,
							310598401, 1164996542, 607225278, 1323610764, 1426881987, 3590304994,
							1925078388, 4068182383, 2162078206, 991336113, 2614888103, 633803317,
							3248222580, 3479774868, 3835390401, 2666613458, 4022224774, 944711139,
							264347078, 2341262773, 604807628, 2007800933, 770255983, 1495990901,
							1249150122, 1856431235, 1555081692, 3175218132, 1996064986, 2198950837,
							2554220882, 3999719339, 2821834349, 766784016, 2952996808, 2566594879,
							3210313671, 3203337956, 3336571891, 1034457026, 3584528711, 2466948901,
							113926993, 3758326383, 338241895, 168717936, 666307205, 1188179964,
							773529912, 1546045734, 1294757372, 1522805485, 1396182291, 2643833823,
							1695183700, 2343527390, 1986661051, 1014477480, 2177026350, 1206759142,
							2456956037, 344077627, 2730485921, 1290863460, 2820302411, 3158454273,
							3259730800, 3505952657, 3345764771, 106217008, 3516065817, 3606008344,
							3600352804, 1432725776, 4094571909, 1467031594, 275423344, 851169720,
							430227734, 3100823752, 506948616, 1363258195, 659060556, 3750685593,
							883997877, 3785050280, 958139571, 3318307427, 1322822218, 3812723403,
							1537002063, 2003034995, 1747873779, 3602036899, 1955562222, 1575990012,
							2024104815, 1125592928, 2227730452, 2716904306, 2361852424, 442776044,
							2428436474, 593698344, 2756734187, 3733110249, 3204031479, 2999351573,
							3329325298, 3815920427, 3391569614, 3928383900, 3515267271, 566280711,
							3940187606, 3454069534, 4118630271, 4000239992, 116418474, 1914138554,
							174292421, 2731055270, 289380356, 3203993006, 460393269, 320620315,
							685471733, 587496836, 852142971, 1086792851, 1017036298, 365543100,
							1126000580, 2618297676, 1288033470, 3409855158, 1501505948, 4234509866,
							1607167915, 987167468, 1816402316, 1246189591
						];

					function b() {
						if (!(this instanceof b)) return new b;
						y.call(this), this.h = [1779033703, 4089235720, 3144134277, 2227873595,
							1013904242, 4271175723, 2773480762, 1595750129, 1359893119, 2917565137,
							2600822924, 725511199, 528734635, 4215389547, 1541459225, 327033209
						], this.k = v, this.W = new Array(160)
					}

					function w(t, e, r, n, i) {
						var o = t & r ^ ~t & i;
						return o < 0 && (o += 4294967296), o
					}

					function E(t, e, r, n, i, o) {
						var s = e & n ^ ~e & o;
						return s < 0 && (s += 4294967296), s
					}

					function _(t, e, r, n, i) {
						var o = t & r ^ t & i ^ r & i;
						return o < 0 && (o += 4294967296), o
					}

					function x(t, e, r, n, i, o) {
						var s = e & n ^ e & o ^ n & o;
						return s < 0 && (s += 4294967296), s
					}

					function A(t, e) {
						var r = s(t, e, 28) ^ s(e, t, 2) ^ s(e, t, 7);
						return r < 0 && (r += 4294967296), r
					}

					function k(t, e) {
						var r = a(t, e, 28) ^ a(e, t, 2) ^ a(e, t, 7);
						return r < 0 && (r += 4294967296), r
					}

					function N(t, e) {
						var r = s(t, e, 14) ^ s(t, e, 18) ^ s(e, t, 9);
						return r < 0 && (r += 4294967296), r
					}

					function S(t, e) {
						var r = a(t, e, 14) ^ a(t, e, 18) ^ a(e, t, 9);
						return r < 0 && (r += 4294967296), r
					}

					function P(t, e) {
						var r = s(t, e, 1) ^ s(t, e, 8) ^ u(t, e, 7);
						return r < 0 && (r += 4294967296), r
					}

					function M(t, e) {
						var r = a(t, e, 1) ^ a(t, e, 8) ^ c(t, e, 7);
						return r < 0 && (r += 4294967296), r
					}

					function O(t, e) {
						var r = s(t, e, 19) ^ s(e, t, 29) ^ u(t, e, 6);
						return r < 0 && (r += 4294967296), r
					}

					function I(t, e) {
						var r = a(t, e, 19) ^ a(e, t, 29) ^ c(t, e, 6);
						return r < 0 && (r += 4294967296), r
					}
					n.inherits(b, y), t.exports = b, b.blockSize = 1024, b.outSize = 512, b
						.hmacStrength = 192, b.padLength = 128, b.prototype._prepareBlock = function(t,
							e) {
							for (var r = this.W, n = 0; n < 32; n++) r[n] = t[e + n];
							for (; n < r.length; n += 2) {
								var i = O(r[n - 4], r[n - 3]),
									o = I(r[n - 4], r[n - 3]),
									s = r[n - 14],
									a = r[n - 13],
									u = P(r[n - 30], r[n - 29]),
									c = M(r[n - 30], r[n - 29]),
									l = r[n - 32],
									h = r[n - 31];
								r[n] = d(i, o, s, a, u, c, l, h), r[n + 1] = p(i, o, s, a, u, c, l, h)
							}
						}, b.prototype._update = function(t, e) {
							this._prepareBlock(t, e);
							var r = this.W,
								n = this.h[0],
								i = this.h[1],
								s = this.h[2],
								a = this.h[3],
								u = this.h[4],
								c = this.h[5],
								d = this.h[6],
								p = this.h[7],
								y = this.h[8],
								v = this.h[9],
								b = this.h[10],
								P = this.h[11],
								M = this.h[12],
								O = this.h[13],
								I = this.h[14],
								T = this.h[15];
							o(this.k.length === r.length);
							for (var R = 0; R < r.length; R += 2) {
								var C = I,
									B = T,
									F = N(y, v),
									j = S(y, v),
									L = w(y, v, b, P, M),
									U = E(y, v, b, P, M, O),
									D = this.k[R],
									q = this.k[R + 1],
									z = r[R],
									G = r[R + 1],
									V = m(C, B, F, j, L, U, D, q, z, G),
									H = g(C, B, F, j, L, U, D, q, z, G);
								C = A(n, i), B = k(n, i), F = _(n, i, s, a, u), j = x(n, i, s, a, u, c);
								var $ = h(C, B, F, j),
									W = f(C, B, F, j);
								I = M, T = O, M = b, O = P, b = y, P = v, y = h(d, p, V, H), v = f(p, p,
									V, H), d = u, p = c, u = s, c = a, s = n, a = i, n = h(V, H, $,
									W), i = f(V, H, $, W)
							}
							l(this.h, 0, n, i), l(this.h, 2, s, a), l(this.h, 4, u, c), l(this.h, 6, d,
								p), l(this.h, 8, y, v), l(this.h, 10, b, P), l(this.h, 12, M, O), l(
								this.h, 14, I, T)
						}, b.prototype._digest = function(t) {
							return "hex" === t ? n.toHex32(this.h, "big") : n.split32(this.h, "big")
						}
				},
				7038: function(t, e, r) {
					"use strict";
					var n = r(6436).rotr32;

					function i(t, e, r) {
						return t & e ^ ~t & r
					}

					function o(t, e, r) {
						return t & e ^ t & r ^ e & r
					}

					function s(t, e, r) {
						return t ^ e ^ r
					}
					e.ft_1 = function(t, e, r, n) {
						return 0 === t ? i(e, r, n) : 1 === t || 3 === t ? s(e, r, n) : 2 === t ? o(
							e, r, n) : void 0
					}, e.ch32 = i, e.maj32 = o, e.p32 = s, e.s0_256 = function(t) {
						return n(t, 2) ^ n(t, 13) ^ n(t, 22)
					}, e.s1_256 = function(t) {
						return n(t, 6) ^ n(t, 11) ^ n(t, 25)
					}, e.g0_256 = function(t) {
						return n(t, 7) ^ n(t, 18) ^ t >>> 3
					}, e.g1_256 = function(t) {
						return n(t, 17) ^ n(t, 19) ^ t >>> 10
					}
				},
				6436: function(t, e, r) {
					"use strict";
					var n = r(9746),
						i = r(5717);

					function o(t, e) {
						return 55296 == (64512 & t.charCodeAt(e)) && (!(e < 0 || e + 1 >= t.length) &&
							56320 == (64512 & t.charCodeAt(e + 1)))
					}

					function s(t) {
						return (t >>> 24 | t >>> 8 & 65280 | t << 8 & 16711680 | (255 & t) << 24) >>> 0
					}

					function a(t) {
						return 1 === t.length ? "0" + t : t
					}

					function u(t) {
						return 7 === t.length ? "0" + t : 6 === t.length ? "00" + t : 5 === t.length ?
							"000" + t : 4 === t.length ? "0000" + t : 3 === t.length ? "00000" + t :
							2 === t.length ? "000000" + t : 1 === t.length ? "0000000" + t : t
					}
					e.inherits = i, e.toArray = function(t, e) {
						if (Array.isArray(t)) return t.slice();
						if (!t) return [];
						var r = [];
						if ("string" == typeof t)
							if (e) {
								if ("hex" === e)
									for ((t = t.replace(/[^a-z0-9]+/gi, "")).length % 2 != 0 && (t =
											"0" + t), i = 0; i < t.length; i += 2) r.push(parseInt(
										t[i] + t[i + 1], 16))
							} else
								for (var n = 0, i = 0; i < t.length; i++) {
									var s = t.charCodeAt(i);
									s < 128 ? r[n++] = s : s < 2048 ? (r[n++] = s >> 6 | 192, r[
										n++] = 63 & s | 128) : o(t, i) ? (s = 65536 + ((1023 &
											s) << 10) + (1023 & t.charCodeAt(++i)), r[n++] =
										s >> 18 | 240, r[n++] = s >> 12 & 63 | 128, r[n++] =
										s >> 6 & 63 | 128, r[n++] = 63 & s | 128) : (r[n++] =
										s >> 12 | 224, r[n++] = s >> 6 & 63 | 128, r[n++] = 63 &
										s | 128)
								} else
									for (i = 0; i < t.length; i++) r[i] = 0 | t[i];
						return r
					}, e.toHex = function(t) {
						for (var e = "", r = 0; r < t.length; r++) e += a(t[r].toString(16));
						return e
					}, e.htonl = s, e.toHex32 = function(t, e) {
						for (var r = "", n = 0; n < t.length; n++) {
							var i = t[n];
							"little" === e && (i = s(i)), r += u(i.toString(16))
						}
						return r
					}, e.zero2 = a, e.zero8 = u, e.join32 = function(t, e, r, i) {
						var o = r - e;
						n(o % 4 == 0);
						for (var s = new Array(o / 4), a = 0, u = e; a < s.length; a++, u += 4) {
							var c;
							c = "big" === i ? t[u] << 24 | t[u + 1] << 16 | t[u + 2] << 8 | t[u +
								3] : t[u + 3] << 24 | t[u + 2] << 16 | t[u + 1] << 8 | t[u], s[a] =
								c >>> 0
						}
						return s
					}, e.split32 = function(t, e) {
						for (var r = new Array(4 * t.length), n = 0, i = 0; n < t.length; n++, i +=
							4) {
							var o = t[n];
							"big" === e ? (r[i] = o >>> 24, r[i + 1] = o >>> 16 & 255, r[i + 2] =
								o >>> 8 & 255, r[i + 3] = 255 & o) : (r[i + 3] = o >>> 24, r[i +
									2] = o >>> 16 & 255, r[i + 1] = o >>> 8 & 255, r[i] = 255 &
								o)
						}
						return r
					}, e.rotr32 = function(t, e) {
						return t >>> e | t << 32 - e
					}, e.rotl32 = function(t, e) {
						return t << e | t >>> 32 - e
					}, e.sum32 = function(t, e) {
						return t + e >>> 0
					}, e.sum32_3 = function(t, e, r) {
						return t + e + r >>> 0
					}, e.sum32_4 = function(t, e, r, n) {
						return t + e + r + n >>> 0
					}, e.sum32_5 = function(t, e, r, n, i) {
						return t + e + r + n + i >>> 0
					}, e.sum64 = function(t, e, r, n) {
						var i = t[e],
							o = n + t[e + 1] >>> 0,
							s = (o < n ? 1 : 0) + r + i;
						t[e] = s >>> 0, t[e + 1] = o
					}, e.sum64_hi = function(t, e, r, n) {
						return (e + n >>> 0 < e ? 1 : 0) + t + r >>> 0
					}, e.sum64_lo = function(t, e, r, n) {
						return e + n >>> 0
					}, e.sum64_4_hi = function(t, e, r, n, i, o, s, a) {
						var u = 0,
							c = e;
						return u += (c = c + n >>> 0) < e ? 1 : 0, u += (c = c + o >>> 0) < o ? 1 :
							0, t + r + i + s + (u += (c = c + a >>> 0) < a ? 1 : 0) >>> 0
					}, e.sum64_4_lo = function(t, e, r, n, i, o, s, a) {
						return e + n + o + a >>> 0
					}, e.sum64_5_hi = function(t, e, r, n, i, o, s, a, u, c) {
						var l = 0,
							h = e;
						return l += (h = h + n >>> 0) < e ? 1 : 0, l += (h = h + o >>> 0) < o ? 1 :
							0, l += (h = h + a >>> 0) < a ? 1 : 0, t + r + i + s + u + (l += (h =
								h + c >>> 0) < c ? 1 : 0) >>> 0
					}, e.sum64_5_lo = function(t, e, r, n, i, o, s, a, u, c) {
						return e + n + o + a + c >>> 0
					}, e.rotr64_hi = function(t, e, r) {
						return (e << 32 - r | t >>> r) >>> 0
					}, e.rotr64_lo = function(t, e, r) {
						return (t << 32 - r | e >>> r) >>> 0
					}, e.shr64_hi = function(t, e, r) {
						return t >>> r
					}, e.shr64_lo = function(t, e, r) {
						return (t << 32 - r | e >>> r) >>> 0
					}
				},
				5717: function(t) {
					"function" == typeof Object.create ? t.exports = function(t, e) {
						e && (t.super_ = e, t.prototype = Object.create(e.prototype, {
							constructor: {
								value: t,
								enumerable: !1,
								writable: !0,
								configurable: !0
							}
						}))
					} : t.exports = function(t, e) {
						if (e) {
							t.super_ = e;
							var r = function() {};
							r.prototype = e.prototype, t.prototype = new r, t.prototype
								.constructor = t
						}
					}
				},
				1094: function(t, e, r) {
					var n;
					! function() {
						"use strict";
						var i = "input is invalid type",
							o = "object" == typeof window,
							s = o ? window : {};
						s.JS_SHA3_NO_WINDOW && (o = !1);
						var a = !o && "object" == typeof self;
						!s.JS_SHA3_NO_NODE_JS && "object" == typeof process && process.versions &&
							process.versions.node ? s = r.g : a && (s = self);
						var u = !s.JS_SHA3_NO_COMMON_JS && t.exports,
							c = r.amdO,
							l = !s.JS_SHA3_NO_ARRAY_BUFFER && "undefined" != typeof ArrayBuffer,
							h = "0123456789abcdef".split(""),
							f = [4, 1024, 262144, 67108864],
							d = [0, 8, 16, 24],
							p = [1, 0, 32898, 0, 32906, 2147483648, 2147516416, 2147483648, 32907, 0,
								2147483649, 0, 2147516545, 2147483648, 32777, 2147483648, 138, 0, 136,
								0, 2147516425, 0, 2147483658, 0, 2147516555, 0, 139, 2147483648, 32905,
								2147483648, 32771, 2147483648, 32770, 2147483648, 128, 2147483648,
								32778, 0, 2147483658, 2147483648, 2147516545, 2147483648, 32896,
								2147483648, 2147483649, 0, 2147516424, 2147483648
							],
							m = [224, 256, 384, 512],
							g = [128, 256],
							y = ["hex", "buffer", "arrayBuffer", "array", "digest"],
							v = {
								128: 168,
								256: 136
							};
						!s.JS_SHA3_NO_NODE_JS && Array.isArray || (Array.isArray = function(t) {
							return "[object Array]" === Object.prototype.toString.call(t)
						}), !l || !s.JS_SHA3_NO_ARRAY_BUFFER_IS_VIEW && ArrayBuffer.isView || (
							ArrayBuffer.isView = function(t) {
								return "object" == typeof t && t.buffer && t.buffer.constructor ===
									ArrayBuffer
							});
						for (var b = function(t, e, r) {
								return function(n) {
									return new C(t, e, t).update(n)[r]()
								}
							}, w = function(t, e, r) {
								return function(n, i) {
									return new C(t, e, i).update(n)[r]()
								}
							}, E = function(t, e, r) {
								return function(e, n, i, o) {
									return N["cshake" + t].update(e, n, i, o)[r]()
								}
							}, _ = function(t, e, r) {
								return function(e, n, i, o) {
									return N["kmac" + t].update(e, n, i, o)[r]()
								}
							}, x = function(t, e, r, n) {
								for (var i = 0; i < y.length; ++i) {
									var o = y[i];
									t[o] = e(r, n, o)
								}
								return t
							}, A = function(t, e) {
								var r = b(t, e, "hex");
								return r.create = function() {
									return new C(t, e, t)
								}, r.update = function(t) {
									return r.create().update(t)
								}, x(r, b, t, e)
							}, k = [{
								name: "keccak",
								padding: [1, 256, 65536, 16777216],
								bits: m,
								createMethod: A
							}, {
								name: "sha3",
								padding: [6, 1536, 393216, 100663296],
								bits: m,
								createMethod: A
							}, {
								name: "shake",
								padding: [31, 7936, 2031616, 520093696],
								bits: g,
								createMethod: function(t, e) {
									var r = w(t, e, "hex");
									return r.create = function(r) {
										return new C(t, e, r)
									}, r.update = function(t, e) {
										return r.create(e).update(t)
									}, x(r, w, t, e)
								}
							}, {
								name: "cshake",
								padding: f,
								bits: g,
								createMethod: function(t, e) {
									var r = v[t],
										n = E(t, 0, "hex");
									return n.create = function(n, i, o) {
										return i || o ? new C(t, e, n).bytepad([i, o],
											r) : N["shake" + t].create(n)
									}, n.update = function(t, e, r, i) {
										return n.create(e, r, i).update(t)
									}, x(n, E, t, e)
								}
							}, {
								name: "kmac",
								padding: f,
								bits: g,
								createMethod: function(t, e) {
									var r = v[t],
										n = _(t, 0, "hex");
									return n.create = function(n, i, o) {
										return new B(t, e, i).bytepad(["KMAC", o], r)
											.bytepad([n], r)
									}, n.update = function(t, e, r, i) {
										return n.create(t, r, i).update(e)
									}, x(n, _, t, e)
								}
							}], N = {}, S = [], P = 0; P < k.length; ++P)
							for (var M = k[P], O = M.bits, I = 0; I < O.length; ++I) {
								var T = M.name + "_" + O[I];
								if (S.push(T), N[T] = M.createMethod(O[I], M.padding), "sha3" !== M
									.name) {
									var R = M.name + O[I];
									S.push(R), N[R] = N[T]
								}
							}

						function C(t, e, r) {
							this.blocks = [], this.s = [], this.padding = e, this.outputBits = r, this
								.reset = !0, this.finalized = !1, this.block = 0, this.start = 0, this
								.blockCount = 1600 - (t << 1) >> 5, this.byteCount = this.blockCount <<
								2, this.outputBlocks = r >> 5, this.extraBytes = (31 & r) >> 3;
							for (var n = 0; n < 50; ++n) this.s[n] = 0
						}

						function B(t, e, r) {
							C.call(this, t, e, r)
						}
						C.prototype.update = function(t) {
								if (this.finalized) throw new Error("finalize already called");
								var e, r = typeof t;
								if ("string" !== r) {
									if ("object" !== r) throw new Error(i);
									if (null === t) throw new Error(i);
									if (l && t.constructor === ArrayBuffer) t = new Uint8Array(t);
									else if (!(Array.isArray(t) || l && ArrayBuffer.isView(t)))
									throw new Error(i);
									e = !0
								}
								for (var n, o, s = this.blocks, a = this.byteCount, u = t.length, c =
										this.blockCount, h = 0, f = this.s; h < u;) {
									if (this.reset)
										for (this.reset = !1, s[0] = this.block, n = 1; n < c + 1; ++n)
											s[n] = 0;
									if (e)
										for (n = this.start; h < u && n < a; ++h) s[n >> 2] |= t[h] <<
											d[3 & n++];
									else
										for (n = this.start; h < u && n < a; ++h)(o = t.charCodeAt(h)) <
											128 ? s[n >> 2] |= o << d[3 & n++] : o < 2048 ? (s[n >>
												2] |= (192 | o >> 6) << d[3 & n++], s[n >> 2] |= (128 |
													63 & o) << d[3 & n++]) : o < 55296 || o >= 57344 ? (
												s[n >> 2] |= (224 | o >> 12) << d[3 & n++], s[n >> 2] |=
												(128 | o >> 6 & 63) << d[3 & n++], s[n >> 2] |= (128 |
													63 & o) << d[3 & n++]) : (o = 65536 + ((1023 & o) <<
												10 | 1023 & t.charCodeAt(++h)), s[n >> 2] |= (240 |
												o >> 18) << d[3 & n++], s[n >> 2] |= (128 | o >>
												12 & 63) << d[3 & n++], s[n >> 2] |= (128 | o >> 6 &
												63) << d[3 & n++], s[n >> 2] |= (128 | 63 & o) << d[
												3 & n++]);
									if (this.lastByteIndex = n, n >= a) {
										for (this.start = n - a, this.block = s[c], n = 0; n < c; ++n)
											f[n] ^= s[n];
										F(f), this.reset = !0
									} else this.start = n
								}
								return this
							}, C.prototype.encode = function(t, e) {
								var r = 255 & t,
									n = 1,
									i = [r];
								for (r = 255 & (t >>= 8); r > 0;) i.unshift(r), r = 255 & (t >>= 8), ++
								n;
								return e ? i.push(n) : i.unshift(n), this.update(i), i.length
							}, C.prototype.encodeString = function(t) {
								var e, r = typeof t;
								if ("string" !== r) {
									if ("object" !== r) throw new Error(i);
									if (null === t) throw new Error(i);
									if (l && t.constructor === ArrayBuffer) t = new Uint8Array(t);
									else if (!(Array.isArray(t) || l && ArrayBuffer.isView(t)))
									throw new Error(i);
									e = !0
								}
								var n = 0,
									o = t.length;
								if (e) n = o;
								else
									for (var s = 0; s < t.length; ++s) {
										var a = t.charCodeAt(s);
										a < 128 ? n += 1 : a < 2048 ? n += 2 : a < 55296 || a >= 57344 ?
											n += 3 : (a = 65536 + ((1023 & a) << 10 | 1023 & t
												.charCodeAt(++s)), n += 4)
									}
								return n += this.encode(8 * n), this.update(t), n
							}, C.prototype.bytepad = function(t, e) {
								for (var r = this.encode(e), n = 0; n < t.length; ++n) r += this
									.encodeString(t[n]);
								var i = e - r % e,
									o = [];
								return o.length = i, this.update(o), this
							}, C.prototype.finalize = function() {
								if (!this.finalized) {
									this.finalized = !0;
									var t = this.blocks,
										e = this.lastByteIndex,
										r = this.blockCount,
										n = this.s;
									if (t[e >> 2] |= this.padding[3 & e], this.lastByteIndex === this
										.byteCount)
										for (t[0] = t[r], e = 1; e < r + 1; ++e) t[e] = 0;
									for (t[r - 1] |= 2147483648, e = 0; e < r; ++e) n[e] ^= t[e];
									F(n)
								}
							}, C.prototype.toString = C.prototype.hex = function() {
								this.finalize();
								for (var t, e = this.blockCount, r = this.s, n = this.outputBlocks, i =
										this.extraBytes, o = 0, s = 0, a = ""; s < n;) {
									for (o = 0; o < e && s < n; ++o, ++s) t = r[o], a += h[t >> 4 &
										15] + h[15 & t] + h[t >> 12 & 15] + h[t >> 8 & 15] + h[t >> 20 &
											15] + h[t >> 16 & 15] + h[t >> 28 & 15] + h[t >> 24 & 15];
									s % e == 0 && (F(r), o = 0)
								}
								return i && (t = r[o], a += h[t >> 4 & 15] + h[15 & t], i > 1 && (a +=
									h[t >> 12 & 15] + h[t >> 8 & 15]), i > 2 && (a += h[t >>
									20 & 15] + h[t >> 16 & 15])), a
							}, C.prototype.arrayBuffer = function() {
								this.finalize();
								var t, e = this.blockCount,
									r = this.s,
									n = this.outputBlocks,
									i = this.extraBytes,
									o = 0,
									s = 0,
									a = this.outputBits >> 3;
								t = i ? new ArrayBuffer(n + 1 << 2) : new ArrayBuffer(a);
								for (var u = new Uint32Array(t); s < n;) {
									for (o = 0; o < e && s < n; ++o, ++s) u[s] = r[o];
									s % e == 0 && F(r)
								}
								return i && (u[o] = r[o], t = t.slice(0, a)), t
							}, C.prototype.buffer = C.prototype.arrayBuffer, C.prototype.digest = C
							.prototype.array = function() {
								this.finalize();
								for (var t, e, r = this.blockCount, n = this.s, i = this.outputBlocks,
										o = this.extraBytes, s = 0, a = 0, u = []; a < i;) {
									for (s = 0; s < r && a < i; ++s, ++a) t = a << 2, e = n[s], u[t] =
										255 & e, u[t + 1] = e >> 8 & 255, u[t + 2] = e >> 16 & 255, u[
											t + 3] = e >> 24 & 255;
									a % r == 0 && F(n)
								}
								return o && (t = a << 2, e = n[s], u[t] = 255 & e, o > 1 && (u[t + 1] =
									e >> 8 & 255), o > 2 && (u[t + 2] = e >> 16 & 255)), u
							}, B.prototype = new C, B.prototype.finalize = function() {
								return this.encode(this.outputBits, !0), C.prototype.finalize.call(this)
							};
						var F = function(t) {
							var e, r, n, i, o, s, a, u, c, l, h, f, d, m, g, y, v, b, w, E, _, x, A,
								k, N, S, P, M, O, I, T, R, C, B, F, j, L, U, D, q, z, G, V, H, $, W,
								J, X, K, Z, Q, Y, tt, et, rt, nt, it, ot, st, at, ut, ct, lt;
							for (n = 0; n < 48; n += 2) i = t[0] ^ t[10] ^ t[20] ^ t[30] ^ t[40],
								o = t[1] ^ t[11] ^ t[21] ^ t[31] ^ t[41], s = t[2] ^ t[12] ^ t[22] ^
								t[32] ^ t[42], a = t[3] ^ t[13] ^ t[23] ^ t[33] ^ t[43], u = t[4] ^
								t[14] ^ t[24] ^ t[34] ^ t[44], c = t[5] ^ t[15] ^ t[25] ^ t[35] ^ t[
									45], l = t[6] ^ t[16] ^ t[26] ^ t[36] ^ t[46], h = t[7] ^ t[
								17] ^ t[27] ^ t[37] ^ t[47], e = (f = t[8] ^ t[18] ^ t[28] ^ t[38] ^
									t[48]) ^ (s << 1 | a >>> 31), r = (d = t[9] ^ t[19] ^ t[29] ^ t[
									39] ^ t[49]) ^ (a << 1 | s >>> 31), t[0] ^= e, t[1] ^= r, t[
								10] ^= e, t[11] ^= r, t[20] ^= e, t[21] ^= r, t[30] ^= e, t[31] ^=
								r, t[40] ^= e, t[41] ^= r, e = i ^ (u << 1 | c >>> 31), r = o ^ (
									c << 1 | u >>> 31), t[2] ^= e, t[3] ^= r, t[12] ^= e, t[13] ^=
								r, t[22] ^= e, t[23] ^= r, t[32] ^= e, t[33] ^= r, t[42] ^= e, t[
								43] ^= r, e = s ^ (l << 1 | h >>> 31), r = a ^ (h << 1 | l >>> 31),
								t[4] ^= e, t[5] ^= r, t[14] ^= e, t[15] ^= r, t[24] ^= e, t[25] ^=
								r, t[34] ^= e, t[35] ^= r, t[44] ^= e, t[45] ^= r, e = u ^ (f << 1 |
									d >>> 31), r = c ^ (d << 1 | f >>> 31), t[6] ^= e, t[7] ^= r, t[
									16] ^= e, t[17] ^= r, t[26] ^= e, t[27] ^= r, t[36] ^= e, t[
								37] ^= r, t[46] ^= e, t[47] ^= r, e = l ^ (i << 1 | o >>> 31), r =
								h ^ (o << 1 | i >>> 31), t[8] ^= e, t[9] ^= r, t[18] ^= e, t[19] ^=
								r, t[28] ^= e, t[29] ^= r, t[38] ^= e, t[39] ^= r, t[48] ^= e, t[
								49] ^= r, m = t[0], g = t[1], W = t[11] << 4 | t[10] >>> 28, J = t[
									10] << 4 | t[11] >>> 28, M = t[20] << 3 | t[21] >>> 29, O = t[
									21] << 3 | t[20] >>> 29, at = t[31] << 9 | t[30] >>> 23, ut = t[
									30] << 9 | t[31] >>> 23, G = t[40] << 18 | t[41] >>> 14, V = t[
									41] << 18 | t[40] >>> 14, B = t[2] << 1 | t[3] >>> 31, F = t[
								3] << 1 | t[2] >>> 31, y = t[13] << 12 | t[12] >>> 20, v = t[12] <<
								12 | t[13] >>> 20, X = t[22] << 10 | t[23] >>> 22, K = t[23] << 10 |
								t[22] >>> 22, I = t[33] << 13 | t[32] >>> 19, T = t[32] << 13 | t[
									33] >>> 19, ct = t[42] << 2 | t[43] >>> 30, lt = t[43] << 2 | t[
									42] >>> 30, et = t[5] << 30 | t[4] >>> 2, rt = t[4] << 30 | t[
								5] >>> 2, j = t[14] << 6 | t[15] >>> 26, L = t[15] << 6 | t[14] >>>
								26, b = t[25] << 11 | t[24] >>> 21, w = t[24] << 11 | t[25] >>> 21,
								Z = t[34] << 15 | t[35] >>> 17, Q = t[35] << 15 | t[34] >>> 17, R =
								t[45] << 29 | t[44] >>> 3, C = t[44] << 29 | t[45] >>> 3, k = t[
								6] << 28 | t[7] >>> 4, N = t[7] << 28 | t[6] >>> 4, nt = t[17] <<
								23 | t[16] >>> 9, it = t[16] << 23 | t[17] >>> 9, U = t[26] << 25 |
								t[27] >>> 7, D = t[27] << 25 | t[26] >>> 7, E = t[36] << 21 | t[
								37] >>> 11, _ = t[37] << 21 | t[36] >>> 11, Y = t[47] << 24 | t[
								46] >>> 8, tt = t[46] << 24 | t[47] >>> 8, H = t[8] << 27 | t[9] >>>
								5, $ = t[9] << 27 | t[8] >>> 5, S = t[18] << 20 | t[19] >>> 12, P =
								t[19] << 20 | t[18] >>> 12, ot = t[29] << 7 | t[28] >>> 25, st = t[
									28] << 7 | t[29] >>> 25, q = t[38] << 8 | t[39] >>> 24, z = t[
									39] << 8 | t[38] >>> 24, x = t[48] << 14 | t[49] >>> 18, A = t[
									49] << 14 | t[48] >>> 18, t[0] = m ^ ~y & b, t[1] = g ^ ~v & w,
								t[10] = k ^ ~S & M, t[11] = N ^ ~P & O, t[20] = B ^ ~j & U, t[21] =
								F ^ ~L & D, t[30] = H ^ ~W & X, t[31] = $ ^ ~J & K, t[40] = et ^ ~
								nt & ot, t[41] = rt ^ ~it & st, t[2] = y ^ ~b & E, t[3] = v ^ ~w &
								_, t[12] = S ^ ~M & I, t[13] = P ^ ~O & T, t[22] = j ^ ~U & q, t[
								23] = L ^ ~D & z, t[32] = W ^ ~X & Z, t[33] = J ^ ~K & Q, t[42] =
								nt ^ ~ot & at, t[43] = it ^ ~st & ut, t[4] = b ^ ~E & x, t[5] = w ^
								~_ & A, t[14] = M ^ ~I & R, t[15] = O ^ ~T & C, t[24] = U ^ ~q & G,
								t[25] = D ^ ~z & V, t[34] = X ^ ~Z & Y, t[35] = K ^ ~Q & tt, t[44] =
								ot ^ ~at & ct, t[45] = st ^ ~ut & lt, t[6] = E ^ ~x & m, t[7] = _ ^
								~A & g, t[16] = I ^ ~R & k, t[17] = T ^ ~C & N, t[26] = q ^ ~G & B,
								t[27] = z ^ ~V & F, t[36] = Z ^ ~Y & H, t[37] = Q ^ ~tt & $, t[46] =
								at ^ ~ct & et, t[47] = ut ^ ~lt & rt, t[8] = x ^ ~m & y, t[9] = A ^
								~g & v, t[18] = R ^ ~k & S, t[19] = C ^ ~N & P, t[28] = G ^ ~B & j,
								t[29] = V ^ ~F & L, t[38] = Y ^ ~H & W, t[39] = tt ^ ~$ & J, t[48] =
								ct ^ ~et & nt, t[49] = lt ^ ~rt & it, t[0] ^= p[n], t[1] ^= p[n + 1]
						};
						if (u) t.exports = N;
						else {
							for (P = 0; P < S.length; ++P) s[S[P]] = N[S[P]];
							c && (void 0 === (n = function() {
								return N
							}.call(e, r, e, t)) || (t.exports = n))
						}
					}()
				},
				9746: function(t) {
					function e(t, e) {
						if (!t) throw new Error(e || "Assertion failed")
					}
					t.exports = e, e.equal = function(t, e, r) {
						if (t != e) throw new Error(r || "Assertion failed: " + t + " != " + e)
					}
				},
				631: function(t, e, r) {
					var n = "function" == typeof Map && Map.prototype,
						i = Object.getOwnPropertyDescriptor && n ? Object.getOwnPropertyDescriptor(Map
							.prototype, "size") : null,
						o = n && i && "function" == typeof i.get ? i.get : null,
						s = n && Map.prototype.forEach,
						a = "function" == typeof Set && Set.prototype,
						u = Object.getOwnPropertyDescriptor && a ? Object.getOwnPropertyDescriptor(Set
							.prototype, "size") : null,
						c = a && u && "function" == typeof u.get ? u.get : null,
						l = a && Set.prototype.forEach,
						h = "function" == typeof WeakMap && WeakMap.prototype ? WeakMap.prototype.has :
						null,
						f = "function" == typeof WeakSet && WeakSet.prototype ? WeakSet.prototype.has :
						null,
						d = "function" == typeof WeakRef && WeakRef.prototype ? WeakRef.prototype
						.deref : null,
						p = Boolean.prototype.valueOf,
						m = Object.prototype.toString,
						g = Function.prototype.toString,
						y = String.prototype.match,
						v = String.prototype.slice,
						b = String.prototype.replace,
						w = String.prototype.toUpperCase,
						E = String.prototype.toLowerCase,
						_ = RegExp.prototype.test,
						x = Array.prototype.concat,
						A = Array.prototype.join,
						k = Array.prototype.slice,
						N = Math.floor,
						S = "function" == typeof BigInt ? BigInt.prototype.valueOf : null,
						P = Object.getOwnPropertySymbols,
						M = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? Symbol
						.prototype.toString : null,
						O = "function" == typeof Symbol && "object" == typeof Symbol.iterator,
						I = "function" == typeof Symbol && Symbol.toStringTag && (typeof Symbol
							.toStringTag === O || "symbol") ? Symbol.toStringTag : null,
						T = Object.prototype.propertyIsEnumerable,
						R = ("function" == typeof Reflect ? Reflect.getPrototypeOf : Object
							.getPrototypeOf) || ([].__proto__ === Array.prototype ? function(t) {
							return t.__proto__
						} : null);

					function C(t, e) {
						if (t === 1 / 0 || t === -1 / 0 || t != t || t && t > -1e3 && t < 1e3 || _.call(
								/e/, e)) return e;
						var r = /[0-9](?=(?:[0-9]{3})+(?![0-9]))/g;
						if ("number" == typeof t) {
							var n = t < 0 ? -N(-t) : N(t);
							if (n !== t) {
								var i = String(n),
									o = v.call(e, i.length + 1);
								return b.call(i, r, "$&_") + "." + b.call(b.call(o, /([0-9]{3})/g,
									"$&_"), /_$/, "")
							}
						}
						return b.call(e, r, "$&_")
					}
					var B = r(4654).custom,
						F = B && D(B) ? B : null;

					function j(t, e, r) {
						var n = "double" === (r.quoteStyle || e) ? '"' : "'";
						return n + t + n
					}

					function L(t) {
						return b.call(String(t), /"/g, "&quot;")
					}

					function U(t) {
						return !("[object Array]" !== G(t) || I && "object" == typeof t && I in t)
					}

					function D(t) {
						if (O) return t && "object" == typeof t && t instanceof Symbol;
						if ("symbol" == typeof t) return !0;
						if (!t || "object" != typeof t || !M) return !1;
						try {
							return M.call(t), !0
						} catch (t) {}
						return !1
					}
					t.exports = function t(e, r, n, i) {
						var a = r || {};
						if (z(a, "quoteStyle") && "single" !== a.quoteStyle && "double" !== a
							.quoteStyle) throw new TypeError(
							'option "quoteStyle" must be "single" or "double"');
						if (z(a, "maxStringLength") && ("number" == typeof a.maxStringLength ? a
								.maxStringLength < 0 && a.maxStringLength !== 1 / 0 : null !== a
								.maxStringLength)) throw new TypeError(
							'option "maxStringLength", if provided, must be a positive integer, Infinity, or `null`'
							);
						var u = !z(a, "customInspect") || a.customInspect;
						if ("boolean" != typeof u && "symbol" !== u) throw new TypeError(
							"option \"customInspect\", if provided, must be `true`, `false`, or `'symbol'`"
							);
						if (z(a, "indent") && null !== a.indent && "\t" !== a.indent && !(parseInt(a
								.indent, 10) === a.indent && a.indent > 0)) throw new TypeError(
							'option "indent" must be "\\t", an integer > 0, or `null`');
						if (z(a, "numericSeparator") && "boolean" != typeof a.numericSeparator)
							throw new TypeError(
								'option "numericSeparator", if provided, must be `true` or `false`'
								);
						var m = a.numericSeparator;
						if (void 0 === e) return "undefined";
						if (null === e) return "null";
						if ("boolean" == typeof e) return e ? "true" : "false";
						if ("string" == typeof e) return H(e, a);
						if ("number" == typeof e) {
							if (0 === e) return 1 / 0 / e > 0 ? "0" : "-0";
							var w = String(e);
							return m ? C(e, w) : w
						}
						if ("bigint" == typeof e) {
							var _ = String(e) + "n";
							return m ? C(e, _) : _
						}
						var N = void 0 === a.depth ? 5 : a.depth;
						if (void 0 === n && (n = 0), n >= N && N > 0 && "object" == typeof e)
						return U(e) ? "[Array]" : "[Object]";
						var P = function(t, e) {
							var r;
							if ("\t" === t.indent) r = "\t";
							else {
								if (!("number" == typeof t.indent && t.indent > 0)) return null;
								r = A.call(Array(t.indent + 1), " ")
							}
							return {
								base: r,
								prev: A.call(Array(e + 1), r)
							}
						}(a, n);
						if (void 0 === i) i = [];
						else if (V(i, e) >= 0) return "[Circular]";

						function B(e, r, o) {
							if (r && (i = k.call(i)).push(r), o) {
								var s = {
									depth: a.depth
								};
								return z(a, "quoteStyle") && (s.quoteStyle = a.quoteStyle), t(e, s,
									n + 1, i)
							}
							return t(e, a, n + 1, i)
						}
						if ("function" == typeof e) {
							var q = function(t) {
									if (t.name) return t.name;
									var e = y.call(g.call(t), /^function\s*([\w$]+)/);
									if (e) return e[1];
									return null
								}(e),
								$ = Z(e, B);
							return "[Function" + (q ? ": " + q : " (anonymous)") + "]" + ($.length >
								0 ? " { " + A.call($, ", ") + " }" : "")
						}
						if (D(e)) {
							var Q = O ? b.call(String(e), /^(Symbol\(.*\))_[^)]*$/, "$1") : M.call(
								e);
							return "object" != typeof e || O ? Q : W(Q)
						}
						if (function(t) {
								if (!t || "object" != typeof t) return !1;
								if ("undefined" != typeof HTMLElement && t instanceof HTMLElement)
									return !0;
								return "string" == typeof t.nodeName && "function" == typeof t
									.getAttribute
							}(e)) {
							for (var Y = "<" + E.call(String(e.nodeName)), tt = e.attributes || [],
									et = 0; et < tt.length; et++) Y += " " + tt[et].name + "=" + j(
								L(tt[et].value), "double", a);
							return Y += ">", e.childNodes && e.childNodes.length && (Y += "..."),
								Y += "</" + E.call(String(e.nodeName)) + ">"
						}
						if (U(e)) {
							if (0 === e.length) return "[]";
							var rt = Z(e, B);
							return P && ! function(t) {
								for (var e = 0; e < t.length; e++)
									if (V(t[e], "\n") >= 0) return !1;
								return !0
							}(rt) ? "[" + K(rt, P) + "]" : "[ " + A.call(rt, ", ") + " ]"
						}
						if (function(t) {
								return !("[object Error]" !== G(t) || I && "object" == typeof t &&
									I in t)
							}(e)) {
							var nt = Z(e, B);
							return "cause" in e && !T.call(e, "cause") ? "{ [" + String(e) + "] " +
								A.call(x.call("[cause]: " + B(e.cause), nt), ", ") + " }" : 0 === nt
								.length ? "[" + String(e) + "]" : "{ [" + String(e) + "] " + A.call(
									nt, ", ") + " }"
						}
						if ("object" == typeof e && u) {
							if (F && "function" == typeof e[F]) return e[F]();
							if ("symbol" !== u && "function" == typeof e.inspect) return e.inspect()
						}
						if (function(t) {
								if (!o || !t || "object" != typeof t) return !1;
								try {
									o.call(t);
									try {
										c.call(t)
									} catch (t) {
										return !0
									}
									return t instanceof Map
								} catch (t) {}
								return !1
							}(e)) {
							var it = [];
							return s.call(e, (function(t, r) {
								it.push(B(r, e, !0) + " => " + B(t, e))
							})), X("Map", o.call(e), it, P)
						}
						if (function(t) {
								if (!c || !t || "object" != typeof t) return !1;
								try {
									c.call(t);
									try {
										o.call(t)
									} catch (t) {
										return !0
									}
									return t instanceof Set
								} catch (t) {}
								return !1
							}(e)) {
							var ot = [];
							return l.call(e, (function(t) {
								ot.push(B(t, e))
							})), X("Set", c.call(e), ot, P)
						}
						if (function(t) {
								if (!h || !t || "object" != typeof t) return !1;
								try {
									h.call(t, h);
									try {
										f.call(t, f)
									} catch (t) {
										return !0
									}
									return t instanceof WeakMap
								} catch (t) {}
								return !1
							}(e)) return J("WeakMap");
						if (function(t) {
								if (!f || !t || "object" != typeof t) return !1;
								try {
									f.call(t, f);
									try {
										h.call(t, h)
									} catch (t) {
										return !0
									}
									return t instanceof WeakSet
								} catch (t) {}
								return !1
							}(e)) return J("WeakSet");
						if (function(t) {
								if (!d || !t || "object" != typeof t) return !1;
								try {
									return d.call(t), !0
								} catch (t) {}
								return !1
							}(e)) return J("WeakRef");
						if (function(t) {
								return !("[object Number]" !== G(t) || I && "object" == typeof t &&
									I in t)
							}(e)) return W(B(Number(e)));
						if (function(t) {
								if (!t || "object" != typeof t || !S) return !1;
								try {
									return S.call(t), !0
								} catch (t) {}
								return !1
							}(e)) return W(B(S.call(e)));
						if (function(t) {
								return !("[object Boolean]" !== G(t) || I && "object" == typeof t &&
									I in t)
							}(e)) return W(p.call(e));
						if (function(t) {
								return !("[object String]" !== G(t) || I && "object" == typeof t &&
									I in t)
							}(e)) return W(B(String(e)));
						if (! function(t) {
								return !("[object Date]" !== G(t) || I && "object" == typeof t &&
									I in t)
							}(e) && ! function(t) {
								return !("[object RegExp]" !== G(t) || I && "object" == typeof t &&
									I in t)
							}(e)) {
							var st = Z(e, B),
								at = R ? R(e) === Object.prototype : e instanceof Object || e
								.constructor === Object,
								ut = e instanceof Object ? "" : "null prototype",
								ct = !at && I && Object(e) === e && I in e ? v.call(G(e), 8, -1) :
								ut ? "Object" : "",
								lt = (at || "function" != typeof e.constructor ? "" : e.constructor
									.name ? e.constructor.name + " " : "") + (ct || ut ? "[" + A
									.call(x.call([], ct || [], ut || []), ": ") + "] " : "");
							return 0 === st.length ? lt + "{}" : P ? lt + "{" + K(st, P) + "}" :
								lt + "{ " + A.call(st, ", ") + " }"
						}
						return String(e)
					};
					var q = Object.prototype.hasOwnProperty || function(t) {
						return t in this
					};

					function z(t, e) {
						return q.call(t, e)
					}

					function G(t) {
						return m.call(t)
					}

					function V(t, e) {
						if (t.indexOf) return t.indexOf(e);
						for (var r = 0, n = t.length; r < n; r++)
							if (t[r] === e) return r;
						return -1
					}

					function H(t, e) {
						if (t.length > e.maxStringLength) {
							var r = t.length - e.maxStringLength,
								n = "... " + r + " more character" + (r > 1 ? "s" : "");
							return H(v.call(t, 0, e.maxStringLength), e) + n
						}
						return j(b.call(b.call(t, /(['\\])/g, "\\$1"), /[\x00-\x1f]/g, $), "single", e)
					}

					function $(t) {
						var e = t.charCodeAt(0),
							r = {
								8: "b",
								9: "t",
								10: "n",
								12: "f",
								13: "r"
							} [e];
						return r ? "\\" + r : "\\x" + (e < 16 ? "0" : "") + w.call(e.toString(16))
					}

					function W(t) {
						return "Object(" + t + ")"
					}

					function J(t) {
						return t + " { ? }"
					}

					function X(t, e, r, n) {
						return t + " (" + e + ") {" + (n ? K(r, n) : A.call(r, ", ")) + "}"
					}

					function K(t, e) {
						if (0 === t.length) return "";
						var r = "\n" + e.prev + e.base;
						return r + A.call(t, "," + r) + "\n" + e.prev
					}

					function Z(t, e) {
						var r = U(t),
							n = [];
						if (r) {
							n.length = t.length;
							for (var i = 0; i < t.length; i++) n[i] = z(t, i) ? e(t[i], t) : ""
						}
						var o, s = "function" == typeof P ? P(t) : [];
						if (O) {
							o = {};
							for (var a = 0; a < s.length; a++) o["$" + s[a]] = s[a]
						}
						for (var u in t) z(t, u) && (r && String(Number(u)) === u && u < t.length ||
							O && o["$" + u] instanceof Symbol || (_.call(/[^\w$]/, u) ? n.push(e(u,
								t) + ": " + e(t[u], t)) : n.push(u + ": " + e(t[u], t))));
						if ("function" == typeof P)
							for (var c = 0; c < s.length; c++) T.call(t, s[c]) && n.push("[" + e(s[c]) +
								"]: " + e(t[s[c]], t));
						return n
					}
				},
				5666: function(t) {
					var e = function(t) {
						"use strict";
						var e, r = Object.prototype,
							n = r.hasOwnProperty,
							i = "function" == typeof Symbol ? Symbol : {},
							o = i.iterator || "@@iterator",
							s = i.asyncIterator || "@@asyncIterator",
							a = i.toStringTag || "@@toStringTag";

						function u(t, e, r) {
							return Object.defineProperty(t, e, {
								value: r,
								enumerable: !0,
								configurable: !0,
								writable: !0
							}), t[e]
						}
						try {
							u({}, "")
						} catch (t) {
							u = function(t, e, r) {
								return t[e] = r
							}
						}

						function c(t, e, r, n) {
							var i = e && e.prototype instanceof g ? e : g,
								o = Object.create(i.prototype),
								s = new P(n || []);
							return o._invoke = function(t, e, r) {
								var n = h;
								return function(i, o) {
									if (n === d) throw new Error(
										"Generator is already running");
									if (n === p) {
										if ("throw" === i) throw o;
										return O()
									}
									for (r.method = i, r.arg = o;;) {
										var s = r.delegate;
										if (s) {
											var a = k(s, r);
											if (a) {
												if (a === m) continue;
												return a
											}
										}
										if ("next" === r.method) r.sent = r._sent = r.arg;
										else if ("throw" === r.method) {
											if (n === h) throw n = p, r.arg;
											r.dispatchException(r.arg)
										} else "return" === r.method && r.abrupt("return", r
											.arg);
										n = d;
										var u = l(t, e, r);
										if ("normal" === u.type) {
											if (n = r.done ? p : f, u.arg === m) continue;
											return {
												value: u.arg,
												done: r.done
											}
										}
										"throw" === u.type && (n = p, r.method = "throw", r
											.arg = u.arg)
									}
								}
							}(t, r, s), o
						}

						function l(t, e, r) {
							try {
								return {
									type: "normal",
									arg: t.call(e, r)
								}
							} catch (t) {
								return {
									type: "throw",
									arg: t
								}
							}
						}
						t.wrap = c;
						var h = "suspendedStart",
							f = "suspendedYield",
							d = "executing",
							p = "completed",
							m = {};

						function g() {}

						function y() {}

						function v() {}
						var b = {};
						u(b, o, (function() {
							return this
						}));
						var w = Object.getPrototypeOf,
							E = w && w(w(M([])));
						E && E !== r && n.call(E, o) && (b = E);
						var _ = v.prototype = g.prototype = Object.create(b);

						function x(t) {
							["next", "throw", "return"].forEach((function(e) {
								u(t, e, (function(t) {
									return this._invoke(e, t)
								}))
							}))
						}

						function A(t, e) {
							function r(i, o, s, a) {
								var u = l(t[i], t, o);
								if ("throw" !== u.type) {
									var c = u.arg,
										h = c.value;
									return h && "object" == typeof h && n.call(h, "__await") ? e
										.resolve(h.__await).then((function(t) {
											r("next", t, s, a)
										}), (function(t) {
											r("throw", t, s, a)
										})) : e.resolve(h).then((function(t) {
											c.value = t, s(c)
										}), (function(t) {
											return r("throw", t, s, a)
										}))
								}
								a(u.arg)
							}
							var i;
							this._invoke = function(t, n) {
								function o() {
									return new e((function(e, i) {
										r(t, n, e, i)
									}))
								}
								return i = i ? i.then(o, o) : o()
							}
						}

						function k(t, r) {
							var n = t.iterator[r.method];
							if (n === e) {
								if (r.delegate = null, "throw" === r.method) {
									if (t.iterator.return && (r.method = "return", r.arg = e, k(t,
											r), "throw" === r.method)) return m;
									r.method = "throw", r.arg = new TypeError(
										"The iterator does not provide a 'throw' method")
								}
								return m
							}
							var i = l(n, t.iterator, r.arg);
							if ("throw" === i.type) return r.method = "throw", r.arg = i.arg, r
								.delegate = null, m;
							var o = i.arg;
							return o ? o.done ? (r[t.resultName] = o.value, r.next = t.nextLoc,
								"return" !== r.method && (r.method = "next", r.arg = e), r
								.delegate = null, m) : o : (r.method = "throw", r.arg =
								new TypeError("iterator result is not an object"), r.delegate =
								null, m)
						}

						function N(t) {
							var e = {
								tryLoc: t[0]
							};
							1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e
								.afterLoc = t[3]), this.tryEntries.push(e)
						}

						function S(t) {
							var e = t.completion || {};
							e.type = "normal", delete e.arg, t.completion = e
						}

						function P(t) {
							this.tryEntries = [{
								tryLoc: "root"
							}], t.forEach(N, this), this.reset(!0)
						}

						function M(t) {
							if (t) {
								var r = t[o];
								if (r) return r.call(t);
								if ("function" == typeof t.next) return t;
								if (!isNaN(t.length)) {
									var i = -1,
										s = function r() {
											for (; ++i < t.length;)
												if (n.call(t, i)) return r.value = t[i], r.done = !
													1, r;
											return r.value = e, r.done = !0, r
										};
									return s.next = s
								}
							}
							return {
								next: O
							}
						}

						function O() {
							return {
								value: e,
								done: !0
							}
						}
						return y.prototype = v, u(_, "constructor", v), u(v, "constructor", y), y
							.displayName = u(v, a, "GeneratorFunction"), t.isGeneratorFunction =
							function(t) {
								var e = "function" == typeof t && t.constructor;
								return !!e && (e === y || "GeneratorFunction" === (e.displayName ||
									e.name))
							}, t.mark = function(t) {
								return Object.setPrototypeOf ? Object.setPrototypeOf(t, v) : (t
										.__proto__ = v, u(t, a, "GeneratorFunction")), t.prototype =
									Object.create(_), t
							}, t.awrap = function(t) {
								return {
									__await: t
								}
							}, x(A.prototype), u(A.prototype, s, (function() {
								return this
							})), t.AsyncIterator = A, t.async = function(e, r, n, i, o) {
								void 0 === o && (o = Promise);
								var s = new A(c(e, r, n, i), o);
								return t.isGeneratorFunction(r) ? s : s.next().then((function(t) {
									return t.done ? t.value : s.next()
								}))
							}, x(_), u(_, a, "Generator"), u(_, o, (function() {
								return this
							})), u(_, "toString", (function() {
								return "[object Generator]"
							})), t.keys = function(t) {
								var e = [];
								for (var r in t) e.push(r);
								return e.reverse(),
									function r() {
										for (; e.length;) {
											var n = e.pop();
											if (n in t) return r.value = n, r.done = !1, r
										}
										return r.done = !0, r
									}
							}, t.values = M, P.prototype = {
								constructor: P,
								reset: function(t) {
									if (this.prev = 0, this.next = 0, this.sent = this._sent =
										e, this.done = !1, this.delegate = null, this.method =
										"next", this.arg = e, this.tryEntries.forEach(S), !t)
										for (var r in this) "t" === r.charAt(0) && n.call(this,
											r) && !isNaN(+r.slice(1)) && (this[r] = e)
								},
								stop: function() {
									this.done = !0;
									var t = this.tryEntries[0].completion;
									if ("throw" === t.type) throw t.arg;
									return this.rval
								},
								dispatchException: function(t) {
									if (this.done) throw t;
									var r = this;

									function i(n, i) {
										return a.type = "throw", a.arg = t, r.next = n, i && (r
											.method = "next", r.arg = e), !!i
									}
									for (var o = this.tryEntries.length - 1; o >= 0; --o) {
										var s = this.tryEntries[o],
											a = s.completion;
										if ("root" === s.tryLoc) return i("end");
										if (s.tryLoc <= this.prev) {
											var u = n.call(s, "catchLoc"),
												c = n.call(s, "finallyLoc");
											if (u && c) {
												if (this.prev < s.catchLoc) return i(s.catchLoc,
													!0);
												if (this.prev < s.finallyLoc) return i(s
													.finallyLoc)
											} else if (u) {
												if (this.prev < s.catchLoc) return i(s.catchLoc,
													!0)
											} else {
												if (!c) throw new Error(
													"try statement without catch or finally"
													);
												if (this.prev < s.finallyLoc) return i(s
													.finallyLoc)
											}
										}
									}
								},
								abrupt: function(t, e) {
									for (var r = this.tryEntries.length - 1; r >= 0; --r) {
										var i = this.tryEntries[r];
										if (i.tryLoc <= this.prev && n.call(i, "finallyLoc") &&
											this.prev < i.finallyLoc) {
											var o = i;
											break
										}
									}
									o && ("break" === t || "continue" === t) && o.tryLoc <= e &&
										e <= o.finallyLoc && (o = null);
									var s = o ? o.completion : {};
									return s.type = t, s.arg = e, o ? (this.method = "next",
										this.next = o.finallyLoc, m) : this.complete(s)
								},
								complete: function(t, e) {
									if ("throw" === t.type) throw t.arg;
									return "break" === t.type || "continue" === t.type ? this
										.next = t.arg : "return" === t.type ? (this.rval = this
											.arg = t.arg, this.method = "return", this.next =
											"end") : "normal" === t.type && e && (this.next =
										e), m
								},
								finish: function(t) {
									for (var e = this.tryEntries.length - 1; e >= 0; --e) {
										var r = this.tryEntries[e];
										if (r.finallyLoc === t) return this.complete(r
											.completion, r.afterLoc), S(r), m
									}
								},
								catch: function(t) {
									for (var e = this.tryEntries.length - 1; e >= 0; --e) {
										var r = this.tryEntries[e];
										if (r.tryLoc === t) {
											var n = r.completion;
											if ("throw" === n.type) {
												var i = n.arg;
												S(r)
											}
											return i
										}
									}
									throw new Error("illegal catch attempt")
								},
								delegateYield: function(t, r, n) {
									return this.delegate = {
										iterator: M(t),
										resultName: r,
										nextLoc: n
									}, "next" === this.method && (this.arg = e), m
								}
							}, t
					}(t.exports);
					try {
						regeneratorRuntime = e
					} catch (t) {
						"object" == typeof globalThis ? globalThis.regeneratorRuntime = e : Function(
							"r", "regeneratorRuntime = r")(e)
					}
				},
				7478: function(t, e, r) {
					"use strict";
					var n = r(210),
						i = r(1924),
						o = r(631),
						s = n("%TypeError%"),
						a = n("%WeakMap%", !0),
						u = n("%Map%", !0),
						c = i("WeakMap.prototype.get", !0),
						l = i("WeakMap.prototype.set", !0),
						h = i("WeakMap.prototype.has", !0),
						f = i("Map.prototype.get", !0),
						d = i("Map.prototype.set", !0),
						p = i("Map.prototype.has", !0),
						m = function(t, e) {
							for (var r, n = t; null !== (r = n.next); n = r)
								if (r.key === e) return n.next = r.next, r.next = t.next, t.next = r, r
						};
					t.exports = function() {
						var t, e, r, n = {
							assert: function(t) {
								if (!n.has(t)) throw new s(
									"Side channel does not contain " + o(t))
							},
							get: function(n) {
								if (a && n && ("object" == typeof n || "function" ==
										typeof n)) {
									if (t) return c(t, n)
								} else if (u) {
									if (e) return f(e, n)
								} else if (r) return function(t, e) {
									var r = m(t, e);
									return r && r.value
								}(r, n)
							},
							has: function(n) {
								if (a && n && ("object" == typeof n || "function" ==
										typeof n)) {
									if (t) return h(t, n)
								} else if (u) {
									if (e) return p(e, n)
								} else if (r) return function(t, e) {
									return !!m(t, e)
								}(r, n);
								return !1
							},
							set: function(n, i) {
								a && n && ("object" == typeof n || "function" == typeof n) ?
									(t || (t = new a), l(t, n, i)) : u ? (e || (e = new u),
										d(e, n, i)) : (r || (r = {
										key: {},
										next: null
									}), function(t, e, r) {
										var n = m(t, e);
										n ? n.value = r : t.next = {
											key: e,
											next: t.next,
											value: r
										}
									}(r, n, i))
							}
						};
						return n
					}
				},
				6601: function() {},
				4654: function() {}
			},
			e = {};

		function r(n) {
			var i = e[n];
			if (void 0 !== i) return i.exports;
			var o = e[n] = {
				id: n,
				loaded: !1,
				exports: {}
			};
			return t[n].call(o.exports, o, o.exports, r), o.loaded = !0, o.exports
		}
		r.amdO = {}, r.n = function(t) {
			var e = t && t.__esModule ? function() {
				return t.default
			} : function() {
				return t
			};
			return r.d(e, {
				a: e
			}), e
		}, r.d = function(t, e) {
			for (var n in e) r.o(e, n) && !r.o(t, n) && Object.defineProperty(t, n, {
				enumerable: !0,
				get: e[n]
			})
		}, r.g = function() {
			if ("object" == typeof globalThis) return globalThis;
			try {
				return this || new Function("return this")()
			} catch (t) {
				if ("object" == typeof window) return window
			}
		}(), r.o = function(t, e) {
			return Object.prototype.hasOwnProperty.call(t, e)
		}, r.nmd = function(t) {
			return t.paths = [], t.children || (t.children = []), t
		};
		var n = {};
		return function() {
			"use strict";

			function t(t, e) {
				(null == e || e > t.length) && (e = t.length);
				for (var r = 0, n = new Array(e); r < e; r++) n[r] = t[r];
				return n
			}

			function e(e, r) {
				if (e) {
					if ("string" == typeof e) return t(e, r);
					var n = Object.prototype.toString.call(e).slice(8, -1);
					return "Object" === n && e.constructor && (n = e.constructor.name), "Map" === n ||
						"Set" === n ? Array.from(e) : "Arguments" === n ||
						/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n) ? t(e, r) : void 0
				}
			}

			function i(t, r) {
				return function(t) {
					if (Array.isArray(t)) return t
				}(t) || function(t, e) {
					var r = null == t ? null : "undefined" != typeof Symbol && t[Symbol.iterator] ||
						t["@@iterator"];
					if (null != r) {
						var n, i, o = [],
							s = !0,
							a = !1;
						try {
							for (r = r.call(t); !(s = (n = r.next()).done) && (o.push(n.value), !
									e || o.length !== e); s = !0);
						} catch (t) {
							a = !0, i = t
						} finally {
							try {
								s || null == r.return || r.return()
							} finally {
								if (a) throw i
							}
						}
						return o
					}
				}(t, r) || e(t, r) || function() {
					throw new TypeError(
						"Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."
						)
				}()
			}

			function o(t, e, r, n, i, o, s) {
				try {
					var a = t[o](s),
						u = a.value
				} catch (t) {
					return void r(t)
				}
				a.done ? e(u) : Promise.resolve(u).then(n, i)
			}

			function s(t) {
				return function() {
					var e = this,
						r = arguments;
					return new Promise((function(n, i) {
						var s = t.apply(e, r);

						function a(t) {
							o(s, n, i, a, u, "next", t)
						}

						function u(t) {
							o(s, n, i, a, u, "throw", t)
						}
						a(void 0)
					}))
				}
			}

			function a(t, e) {
				if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function")
			}

			function u(t, e) {
				for (var r = 0; r < e.length; r++) {
					var n = e[r];
					n.enumerable = n.enumerable || !1, n.configurable = !0, "value" in n && (n
						.writable = !0), Object.defineProperty(t, n.key, n)
				}
			}

			function c(t, e, r) {
				return e && u(t.prototype, e), r && u(t, r), Object.defineProperty(t, "prototype", {
					writable: !1
				}), t
			}

			function l(t, e, r) {
				return e in t ? Object.defineProperty(t, e, {
					value: r,
					enumerable: !0,
					configurable: !0,
					writable: !0
				}) : t[e] = r, t
			}
			r.d(n, {
				default: function() {
					return fs
				}
			});
			var h = r(7757),
				f = r.n(h),
				d = r(9669),
				p = r.n(d),
				m = function(t) {
					return {
						res: t,
						err: null
					}
				},
				g = function(t) {
					return {
						res: null,
						err: t
					}
				},
				y = function() {
					function t() {
						a(this, t), l(this, "service", null)
					}
					var e, r, n, i;
					return c(t, null, [{
						key: "createService",
						value: function(t) {
							var e = p().create({
								baseURL: t,
								timeout: 5e3
							});
							e.interceptors.request.use((function(t) {
								return t
							}), (function(t) {
								console.log(t), Promise.reject(t)
							})), e.interceptors.response.use((function(t) {
								var e = t.status,
									r = t.data;
								return 200 !== e ? Promise.reject(
										"server error") : r && 200 === r
									.code ? Promise.resolve(r.data) :
									Promise.reject(r.msg ? r.msg :
										"api error")
							}), (function(t) {
								console.error(t);
								var e = t.response,
									r = "请求失败，服务繁忙中……";
								return e.data && void 0 !== e.data.msg && (
									r = e.data.msg), Promise.reject(r)
							})), this.service = e
						}
					}, {
						key: "get",
						value: (i = s(f().mark((function t(e, r) {
							var n;
							return f().wrap((function(t) {
								for (;;) switch (t.prev = t
									.next) {
									case 0:
										return t.prev =
											0, t.next =
											3, this
											.service
											.get(e, {
												params: r
											});
									case 3:
										return n = t
											.sent, t
											.abrupt(
												"return",
												m(n));
									case 7:
										return t.prev =
											7, t.t0 = t
											.catch(0), t
											.abrupt(
												"return",
												g(t.t0)
												);
									case 10:
									case "end":
										return t.stop()
								}
							}), t, this, [
								[0, 7]
							])
						}))), function(t, e) {
							return i.apply(this, arguments)
						})
					}, {
						key: "post",
						value: (n = s(f().mark((function t(e, r) {
							var n;
							return f().wrap((function(t) {
								for (;;) switch (t.prev = t
									.next) {
									case 0:
										return t.prev =
											0, t.next =
											3, this
											.service
											.post(e, r);
									case 3:
										return n = t
											.sent, t
											.abrupt(
												"return",
												m(n));
									case 7:
										return t.prev =
											7, t.t0 = t
											.catch(0), t
											.abrupt(
												"return",
												g(t.t0)
												);
									case 10:
									case "end":
										return t.stop()
								}
							}), t, this, [
								[0, 7]
							])
						}))), function(t, e) {
							return n.apply(this, arguments)
						})
					}, {
						key: "put",
						value: (r = s(f().mark((function t(e, r) {
							var n;
							return f().wrap((function(t) {
								for (;;) switch (t.prev = t
									.next) {
									case 0:
										return t.prev =
											0, t.next =
											3, this
											.service
											.put(e, r);
									case 3:
										return n = t
											.sent, t
											.abrupt(
												"return",
												m(n));
									case 7:
										return t.prev =
											7, t.t0 = t
											.catch(0), t
											.abrupt(
												"return",
												g(t.t0)
												);
									case 10:
									case "end":
										return t.stop()
								}
							}), t, this, [
								[0, 7]
							])
						}))), function(t, e) {
							return r.apply(this, arguments)
						})
					}, {
						key: "delete",
						value: (e = s(f().mark((function t(e, r) {
							var n;
							return f().wrap((function(t) {
								for (;;) switch (t.prev = t
									.next) {
									case 0:
										return t.prev =
											0, t.next =
											3, this
											.service
											.delete(e, {
												data: r
											});
									case 3:
										return n = t
											.sent, t
											.abrupt(
												"return",
												m(n));
									case 7:
										return t.prev =
											7, t.t0 = t
											.catch(0), t
											.abrupt(
												"return",
												g(t.t0)
												);
									case 10:
									case "end":
										return t.stop()
								}
							}), t, this, [
								[0, 7]
							])
						}))), function(t, r) {
							return e.apply(this, arguments)
						})
					}]), t
				}();
			let v = !1,
				b = !1;
			const w = {
				debug: 1,
				default: 2,
				info: 2,
				warning: 3,
				error: 4,
				off: 5
			};
			let E = w.default,
				_ = null;
			const x = function() {
				try {
					const t = [];
					if (["NFD", "NFC", "NFKD", "NFKC"].forEach((e => {
							try {
								if ("test" !== "test".normalize(e)) throw new Error(
									"bad normalize")
							} catch (r) {
								t.push(e)
							}
						})), t.length) throw new Error("missing " + t.join(", "));
					if (String.fromCharCode(233).normalize("NFD") !== String.fromCharCode(101, 769))
						throw new Error("broken implementation")
				} catch (t) {
					return t.message
				}
				return null
			}();
			var A, k;
			! function(t) {
				t.DEBUG = "DEBUG", t.INFO = "INFO", t.WARNING = "WARNING", t.ERROR = "ERROR", t.OFF =
					"OFF"
			}(A || (A = {})),
			function(t) {
				t.UNKNOWN_ERROR = "UNKNOWN_ERROR", t.NOT_IMPLEMENTED = "NOT_IMPLEMENTED", t
					.UNSUPPORTED_OPERATION = "UNSUPPORTED_OPERATION", t.NETWORK_ERROR = "NETWORK_ERROR",
					t.SERVER_ERROR = "SERVER_ERROR", t.TIMEOUT = "TIMEOUT", t.BUFFER_OVERRUN =
					"BUFFER_OVERRUN", t.NUMERIC_FAULT = "NUMERIC_FAULT", t.MISSING_NEW = "MISSING_NEW",
					t.INVALID_ARGUMENT = "INVALID_ARGUMENT", t.MISSING_ARGUMENT = "MISSING_ARGUMENT", t
					.UNEXPECTED_ARGUMENT = "UNEXPECTED_ARGUMENT", t.CALL_EXCEPTION = "CALL_EXCEPTION", t
					.INSUFFICIENT_FUNDS = "INSUFFICIENT_FUNDS", t.NONCE_EXPIRED = "NONCE_EXPIRED", t
					.REPLACEMENT_UNDERPRICED = "REPLACEMENT_UNDERPRICED", t.UNPREDICTABLE_GAS_LIMIT =
					"UNPREDICTABLE_GAS_LIMIT", t.TRANSACTION_REPLACED = "TRANSACTION_REPLACED"
			}(k || (k = {}));
			const N = "0123456789abcdef";
			class S {
				constructor(t) {
					Object.defineProperty(this, "version", {
						enumerable: !0,
						value: t,
						writable: !1
					})
				}
				_log(t, e) {
					const r = t.toLowerCase();
					null == w[r] && this.throwArgumentError("invalid log level name", "logLevel",
						t), E > w[r] || console.log.apply(console, e)
				}
				debug(...t) {
					this._log(S.levels.DEBUG, t)
				}
				info(...t) {
					this._log(S.levels.INFO, t)
				}
				warn(...t) {
					this._log(S.levels.WARNING, t)
				}
				makeError(t, e, r) {
					if (b) return this.makeError("censored error", e, {});
					e || (e = S.errors.UNKNOWN_ERROR), r || (r = {});
					const n = [];
					Object.keys(r).forEach((t => {
						const e = r[t];
						try {
							if (e instanceof Uint8Array) {
								let r = "";
								for (let t = 0; t < e.length; t++) r += N[e[t] >> 4],
									r += N[15 & e[t]];
								n.push(t + "=Uint8Array(0x" + r + ")")
							} else n.push(t + "=" + JSON.stringify(e))
						} catch (e) {
							n.push(t + "=" + JSON.stringify(r[t].toString()))
						}
					})), n.push(`code=${e}`), n.push(`version=${this.version}`);
					const i = t;
					let o = "";
					switch (e) {
						case k.NUMERIC_FAULT: {
							o = "NUMERIC_FAULT";
							const e = t;
							switch (e) {
								case "overflow":
								case "underflow":
								case "division-by-zero":
									o += "-" + e;
									break;
								case "negative-power":
								case "negative-width":
									o += "-unsupported";
									break;
								case "unbound-bitwise-result":
									o += "-unbound-result"
							}
							break
						}
						case k.CALL_EXCEPTION:
						case k.INSUFFICIENT_FUNDS:
						case k.MISSING_NEW:
						case k.NONCE_EXPIRED:
						case k.REPLACEMENT_UNDERPRICED:
						case k.TRANSACTION_REPLACED:
						case k.UNPREDICTABLE_GAS_LIMIT:
							o = e
					}
					o && (t += " [ See: https://links.ethers.org/v5-errors-" + o + " ]"), n
						.length && (t += " (" + n.join(", ") + ")");
					const s = new Error(t);
					return s.reason = i, s.code = e, Object.keys(r).forEach((function(t) {
						s[t] = r[t]
					})), s
				}
				throwError(t, e, r) {
					throw this.makeError(t, e, r)
				}
				throwArgumentError(t, e, r) {
					return this.throwError(t, S.errors.INVALID_ARGUMENT, {
						argument: e,
						value: r
					})
				}
				assert(t, e, r, n) {
					t || this.throwError(e, r, n)
				}
				assertArgument(t, e, r, n) {
					t || this.throwArgumentError(e, r, n)
				}
				checkNormalize(t) {
					null == t && (t = "platform missing String.prototype.normalize"), x && this
						.throwError("platform missing String.prototype.normalize", S.errors
							.UNSUPPORTED_OPERATION, {
								operation: "String.prototype.normalize",
								form: x
							})
				}
				checkSafeUint53(t, e) {
					"number" == typeof t && (null == e && (e = "value not safe"), (t < 0 || t >=
						9007199254740991) && this.throwError(e, S.errors.NUMERIC_FAULT, {
						operation: "checkSafeInteger",
						fault: "out-of-safe-range",
						value: t
					}), t % 1 && this.throwError(e, S.errors.NUMERIC_FAULT, {
						operation: "checkSafeInteger",
						fault: "non-integer",
						value: t
					}))
				}
				checkArgumentCount(t, e, r) {
					r = r ? ": " + r : "", t < e && this.throwError("missing argument" + r, S.errors
						.MISSING_ARGUMENT, {
							count: t,
							expectedCount: e
						}), t > e && this.throwError("too many arguments" + r, S.errors
						.UNEXPECTED_ARGUMENT, {
							count: t,
							expectedCount: e
						})
				}
				checkNew(t, e) {
					t !== Object && null != t || this.throwError("missing new", S.errors
						.MISSING_NEW, {
							name: e.name
						})
				}
				checkAbstract(t, e) {
					t === e ? this.throwError("cannot instantiate abstract class " + JSON.stringify(
							e.name) + " directly; use a sub-class", S.errors
						.UNSUPPORTED_OPERATION, {
							name: t.name,
							operation: "new"
						}) : t !== Object && null != t || this.throwError("missing new", S
						.errors.MISSING_NEW, {
							name: e.name
						})
				}
				static globalLogger() {
					return _ || (_ = new S("logger/5.6.0")), _
				}
				static setCensorship(t, e) {
					if (!t && e && this.globalLogger().throwError(
							"cannot permanently disable censorship", S.errors
							.UNSUPPORTED_OPERATION, {
								operation: "setCensorship"
							}), v) {
						if (!t) return;
						this.globalLogger().throwError("error censorship permanent", S.errors
							.UNSUPPORTED_OPERATION, {
								operation: "setCensorship"
							})
					}
					b = !!t, v = !!e
				}
				static setLogLevel(t) {
					const e = w[t.toLowerCase()];
					null != e ? E = e : S.globalLogger().warn("invalid log level - " + t)
				}
				static from(t) {
					return new S(t)
				}
			}
			S.errors = k, S.levels = A;
			const P = new S("bytes/5.6.1");

			function M(t) {
				return !!t.toHexString
			}

			function O(t) {
				return t.slice || (t.slice = function() {
					const e = Array.prototype.slice.call(arguments);
					return O(new Uint8Array(Array.prototype.slice.apply(t, e)))
				}), t
			}

			function I(t) {
				return j(t) && !(t.length % 2) || R(t)
			}

			function T(t) {
				return "number" == typeof t && t == t && t % 1 == 0
			}

			function R(t) {
				if (null == t) return !1;
				if (t.constructor === Uint8Array) return !0;
				if ("string" == typeof t) return !1;
				if (!T(t.length) || t.length < 0) return !1;
				for (let e = 0; e < t.length; e++) {
					const r = t[e];
					if (!T(r) || r < 0 || r >= 256) return !1
				}
				return !0
			}

			function C(t, e) {
				if (e || (e = {}), "number" == typeof t) {
					P.checkSafeUint53(t, "invalid arrayify value");
					const e = [];
					for (; t;) e.unshift(255 & t), t = parseInt(String(t / 256));
					return 0 === e.length && e.push(0), O(new Uint8Array(e))
				}
				if (e.allowMissingPrefix && "string" == typeof t && "0x" !== t.substring(0, 2) && (t =
						"0x" + t), M(t) && (t = t.toHexString()), j(t)) {
					let r = t.substring(2);
					r.length % 2 && ("left" === e.hexPad ? r = "0" + r : "right" === e.hexPad ? r +=
						"0" : P.throwArgumentError("hex data is odd-length", "value", t));
					const n = [];
					for (let t = 0; t < r.length; t += 2) n.push(parseInt(r.substring(t, t + 2), 16));
					return O(new Uint8Array(n))
				}
				return R(t) ? O(new Uint8Array(t)) : P.throwArgumentError("invalid arrayify value",
					"value", t)
			}

			function B(t) {
				const e = t.map((t => C(t))),
					r = e.reduce(((t, e) => t + e.length), 0),
					n = new Uint8Array(r);
				return e.reduce(((t, e) => (n.set(e, t), t + e.length)), 0), O(n)
			}

			function F(t) {
				let e = C(t);
				if (0 === e.length) return e;
				let r = 0;
				for (; r < e.length && 0 === e[r];) r++;
				return r && (e = e.slice(r)), e
			}

			function j(t, e) {
				return !("string" != typeof t || !t.match(/^0x[0-9A-Fa-f]*$/)) && (!e || t.length ===
					2 + 2 * e)
			}
			const L = "0123456789abcdef";

			function U(t, e) {
				if (e || (e = {}), "number" == typeof t) {
					P.checkSafeUint53(t, "invalid hexlify value");
					let e = "";
					for (; t;) e = L[15 & t] + e, t = Math.floor(t / 16);
					return e.length ? (e.length % 2 && (e = "0" + e), "0x" + e) : "0x00"
				}
				if ("bigint" == typeof t) return (t = t.toString(16)).length % 2 ? "0x0" + t : "0x" + t;
				if (e.allowMissingPrefix && "string" == typeof t && "0x" !== t.substring(0, 2) && (t =
						"0x" + t), M(t)) return t.toHexString();
				if (j(t)) return t.length % 2 && ("left" === e.hexPad ? t = "0x0" + t.substring(2) :
					"right" === e.hexPad ? t += "0" : P.throwArgumentError(
						"hex data is odd-length", "value", t)), t.toLowerCase();
				if (R(t)) {
					let e = "0x";
					for (let r = 0; r < t.length; r++) {
						let n = t[r];
						e += L[(240 & n) >> 4] + L[15 & n]
					}
					return e
				}
				return P.throwArgumentError("invalid hexlify value", "value", t)
			}

			function D(t) {
				if ("string" != typeof t) t = U(t);
				else if (!j(t) || t.length % 2) return null;
				return (t.length - 2) / 2
			}

			function q(t, e, r) {
				return "string" != typeof t ? t = U(t) : (!j(t) || t.length % 2) && P
					.throwArgumentError("invalid hexData", "value", t), e = 2 + 2 * e, null != r ?
					"0x" + t.substring(e, 2 + 2 * r) : "0x" + t.substring(e)
			}

			function z(t) {
				let e = "0x";
				return t.forEach((t => {
					e += U(t).substring(2)
				})), e
			}

			function G(t) {
				const e = function(t) {
					"string" != typeof t && (t = U(t));
					j(t) || P.throwArgumentError("invalid hex string", "value", t);
					t = t.substring(2);
					let e = 0;
					for (; e < t.length && "0" === t[e];) e++;
					return "0x" + t.substring(e)
				}(U(t, {
					hexPad: "left"
				}));
				return "0x" === e ? "0x0" : e
			}

			function V(t, e) {
				for ("string" != typeof t ? t = U(t) : j(t) || P.throwArgumentError(
						"invalid hex string", "value", t), t.length > 2 * e + 2 && P.throwArgumentError(
						"value out of range", "value", arguments[1]); t.length < 2 * e + 2;) t = "0x0" +
					t.substring(2);
				return t
			}

			function H(t) {
				const e = {
					r: "0x",
					s: "0x",
					_vs: "0x",
					recoveryParam: 0,
					v: 0,
					yParityAndS: "0x",
					compact: "0x"
				};
				if (I(t)) {
					let r = C(t);
					64 === r.length ? (e.v = 27 + (r[32] >> 7), r[32] &= 127, e.r = U(r.slice(0, 32)), e
						.s = U(r.slice(32, 64))) : 65 === r.length ? (e.r = U(r.slice(0, 32)), e.s =
						U(r.slice(32, 64)), e.v = r[64]) : P.throwArgumentError(
						"invalid signature string", "signature", t), e.v < 27 && (0 === e.v || 1 ===
						e.v ? e.v += 27 : P.throwArgumentError("signature invalid v byte",
							"signature", t)), e.recoveryParam = 1 - e.v % 2, e.recoveryParam && (r[
						32] |= 128), e._vs = U(r.slice(32, 64))
				} else {
					if (e.r = t.r, e.s = t.s, e.v = t.v, e.recoveryParam = t.recoveryParam, e._vs = t
						._vs, null != e._vs) {
						const r = function(t, e) {
							(t = C(t)).length > e && P.throwArgumentError("value out of range",
								"value", arguments[0]);
							const r = new Uint8Array(e);
							return r.set(t, e - t.length), O(r)
						}(C(e._vs), 32);
						e._vs = U(r);
						const n = r[0] >= 128 ? 1 : 0;
						null == e.recoveryParam ? e.recoveryParam = n : e.recoveryParam !== n && P
							.throwArgumentError("signature recoveryParam mismatch _vs", "signature", t),
							r[0] &= 127;
						const i = U(r);
						null == e.s ? e.s = i : e.s !== i && P.throwArgumentError(
							"signature v mismatch _vs", "signature", t)
					}
					if (null == e.recoveryParam) null == e.v ? P.throwArgumentError(
							"signature missing v and recoveryParam", "signature", t) : 0 === e.v ||
						1 === e.v ? e.recoveryParam = e.v : e.recoveryParam = 1 - e.v % 2;
					else if (null == e.v) e.v = 27 + e.recoveryParam;
					else {
						const r = 0 === e.v || 1 === e.v ? e.v : 1 - e.v % 2;
						e.recoveryParam !== r && P.throwArgumentError(
							"signature recoveryParam mismatch v", "signature", t)
					}
					null != e.r && j(e.r) ? e.r = V(e.r, 32) : P.throwArgumentError(
							"signature missing or invalid r", "signature", t), null != e.s && j(e.s) ? e
						.s = V(e.s, 32) : P.throwArgumentError("signature missing or invalid s",
							"signature", t);
					const r = C(e.s);
					r[0] >= 128 && P.throwArgumentError("signature s out of range", "signature", t), e
						.recoveryParam && (r[0] |= 128);
					const n = U(r);
					e._vs && (j(e._vs) || P.throwArgumentError("signature invalid _vs", "signature", t),
							e._vs = V(e._vs, 32)), null == e._vs ? e._vs = n : e._vs !== n && P
						.throwArgumentError("signature _vs mismatch v and s", "signature", t)
				}
				return e.yParityAndS = e._vs, e.compact = e.r + e.yParityAndS.substring(2), e
			}
			var $ = r(3550),
				W = r.n($);
			const J = "bignumber/5.6.0";
			var X = W().BN;
			const K = new S(J),
				Z = {},
				Q = 9007199254740991;
			let Y = !1;
			class tt {
				constructor(t, e) {
					K.checkNew(new.target, tt), t !== Z && K.throwError(
						"cannot call constructor directly; use BigNumber.from", S.errors
						.UNSUPPORTED_OPERATION, {
							operation: "new (BigNumber)"
						}), this._hex = e, this._isBigNumber = !0, Object.freeze(this)
				}
				fromTwos(t) {
					return rt(nt(this).fromTwos(t))
				}
				toTwos(t) {
					return rt(nt(this).toTwos(t))
				}
				abs() {
					return "-" === this._hex[0] ? tt.from(this._hex.substring(1)) : this
				}
				add(t) {
					return rt(nt(this).add(nt(t)))
				}
				sub(t) {
					return rt(nt(this).sub(nt(t)))
				}
				div(t) {
					return tt.from(t).isZero() && it("division-by-zero", "div"), rt(nt(this).div(nt(
						t)))
				}
				mul(t) {
					return rt(nt(this).mul(nt(t)))
				}
				mod(t) {
					const e = nt(t);
					return e.isNeg() && it("division-by-zero", "mod"), rt(nt(this).umod(e))
				}
				pow(t) {
					const e = nt(t);
					return e.isNeg() && it("negative-power", "pow"), rt(nt(this).pow(e))
				}
				and(t) {
					const e = nt(t);
					return (this.isNegative() || e.isNeg()) && it("unbound-bitwise-result", "and"),
						rt(nt(this).and(e))
				}
				or(t) {
					const e = nt(t);
					return (this.isNegative() || e.isNeg()) && it("unbound-bitwise-result", "or"),
						rt(nt(this).or(e))
				}
				xor(t) {
					const e = nt(t);
					return (this.isNegative() || e.isNeg()) && it("unbound-bitwise-result", "xor"),
						rt(nt(this).xor(e))
				}
				mask(t) {
					return (this.isNegative() || t < 0) && it("negative-width", "mask"), rt(nt(this)
						.maskn(t))
				}
				shl(t) {
					return (this.isNegative() || t < 0) && it("negative-width", "shl"), rt(nt(this)
						.shln(t))
				}
				shr(t) {
					return (this.isNegative() || t < 0) && it("negative-width", "shr"), rt(nt(this)
						.shrn(t))
				}
				eq(t) {
					return nt(this).eq(nt(t))
				}
				lt(t) {
					return nt(this).lt(nt(t))
				}
				lte(t) {
					return nt(this).lte(nt(t))
				}
				gt(t) {
					return nt(this).gt(nt(t))
				}
				gte(t) {
					return nt(this).gte(nt(t))
				}
				isNegative() {
					return "-" === this._hex[0]
				}
				isZero() {
					return nt(this).isZero()
				}
				toNumber() {
					try {
						return nt(this).toNumber()
					} catch (t) {
						it("overflow", "toNumber", this.toString())
					}
					return null
				}
				toBigInt() {
					try {
						return BigInt(this.toString())
					} catch (t) {}
					return K.throwError("this platform does not support BigInt", S.errors
						.UNSUPPORTED_OPERATION, {
							value: this.toString()
						})
				}
				toString() {
					return arguments.length > 0 && (10 === arguments[0] ? Y || (Y = !0, K.warn(
						"BigNumber.toString does not accept any parameters; base-10 is assumed"
						)) : 16 === arguments[0] ? K.throwError(
						"BigNumber.toString does not accept any parameters; use bigNumber.toHexString()",
						S.errors.UNEXPECTED_ARGUMENT, {}) : K.throwError(
						"BigNumber.toString does not accept parameters", S.errors
						.UNEXPECTED_ARGUMENT, {})), nt(this).toString(10)
				}
				toHexString() {
					return this._hex
				}
				toJSON(t) {
					return {
						type: "BigNumber",
						hex: this.toHexString()
					}
				}
				static from(t) {
					if (t instanceof tt) return t;
					if ("string" == typeof t) return t.match(/^-?0x[0-9a-f]+$/i) ? new tt(Z, et(
						t)) : t.match(/^-?[0-9]+$/) ? new tt(Z, et(new X(t))) : K
						.throwArgumentError("invalid BigNumber string", "value", t);
					if ("number" == typeof t) return t % 1 && it("underflow", "BigNumber.from", t),
						(t >= Q || t <= -Q) && it("overflow", "BigNumber.from", t), tt.from(
							String(t));
					const e = t;
					if ("bigint" == typeof e) return tt.from(e.toString());
					if (R(e)) return tt.from(U(e));
					if (e)
						if (e.toHexString) {
							const t = e.toHexString();
							if ("string" == typeof t) return tt.from(t)
						} else {
							let t = e._hex;
							if (null == t && "BigNumber" === e.type && (t = e.hex), "string" ==
								typeof t && (j(t) || "-" === t[0] && j(t.substring(1)))) return tt
								.from(t)
						} return K.throwArgumentError("invalid BigNumber value", "value", t)
				}
				static isBigNumber(t) {
					return !(!t || !t._isBigNumber)
				}
			}

			function et(t) {
				if ("string" != typeof t) return et(t.toString(16));
				if ("-" === t[0]) return "-" === (t = t.substring(1))[0] && K.throwArgumentError(
					"invalid hex", "value", t), "0x00" === (t = et(t)) ? t : "-" + t;
				if ("0x" !== t.substring(0, 2) && (t = "0x" + t), "0x" === t) return "0x00";
				for (t.length % 2 && (t = "0x0" + t.substring(2)); t.length > 4 && "0x00" === t
					.substring(0, 4);) t = "0x" + t.substring(4);
				return t
			}

			function rt(t) {
				return tt.from(et(t))
			}

			function nt(t) {
				const e = tt.from(t).toHexString();
				return "-" === e[0] ? new X("-" + e.substring(3), 16) : new X(e.substring(2), 16)
			}

			function it(t, e, r) {
				const n = {
					fault: t,
					operation: e
				};
				return null != r && (n.value = r), K.throwError(t, S.errors.NUMERIC_FAULT, n)
			}
			var ot = r(1094),
				st = r.n(ot);

			function at(t) {
				return "0x" + st().keccak_256(C(t))
			}
			const ut = new S("rlp/5.6.0");

			function ct(t) {
				const e = [];
				for (; t;) e.unshift(255 & t), t >>= 8;
				return e
			}

			function lt(t, e, r) {
				let n = 0;
				for (let i = 0; i < r; i++) n = 256 * n + t[e + i];
				return n
			}

			function ht(t) {
				if (Array.isArray(t)) {
					let e = [];
					if (t.forEach((function(t) {
							e = e.concat(ht(t))
						})), e.length <= 55) return e.unshift(192 + e.length), e;
					const r = ct(e.length);
					return r.unshift(247 + r.length), r.concat(e)
				}
				I(t) || ut.throwArgumentError("RLP object must be BytesLike", "object", t);
				const e = Array.prototype.slice.call(C(t));
				if (1 === e.length && e[0] <= 127) return e;
				if (e.length <= 55) return e.unshift(128 + e.length), e;
				const r = ct(e.length);
				return r.unshift(183 + r.length), r.concat(e)
			}

			function ft(t) {
				return U(ht(t))
			}

			function dt(t, e, r, n) {
				const i = [];
				for (; r < e + 1 + n;) {
					const o = pt(t, r);
					i.push(o.result), (r += o.consumed) > e + 1 + n && ut.throwError(
						"child data too short", S.errors.BUFFER_OVERRUN, {})
				}
				return {
					consumed: 1 + n,
					result: i
				}
			}

			function pt(t, e) {
				if (0 === t.length && ut.throwError("data too short", S.errors.BUFFER_OVERRUN, {}), t[
					e] >= 248) {
					const r = t[e] - 247;
					e + 1 + r > t.length && ut.throwError("data short segment too short", S.errors
						.BUFFER_OVERRUN, {});
					const n = lt(t, e + 1, r);
					return e + 1 + r + n > t.length && ut.throwError("data long segment too short", S
						.errors.BUFFER_OVERRUN, {}), dt(t, e, e + 1 + r, r + n)
				}
				if (t[e] >= 192) {
					const r = t[e] - 192;
					return e + 1 + r > t.length && ut.throwError("data array too short", S.errors
						.BUFFER_OVERRUN, {}), dt(t, e, e + 1, r)
				}
				if (t[e] >= 184) {
					const r = t[e] - 183;
					e + 1 + r > t.length && ut.throwError("data array too short", S.errors
						.BUFFER_OVERRUN, {});
					const n = lt(t, e + 1, r);
					e + 1 + r + n > t.length && ut.throwError("data array too short", S.errors
						.BUFFER_OVERRUN, {});
					return {
						consumed: 1 + r + n,
						result: U(t.slice(e + 1 + r, e + 1 + r + n))
					}
				}
				if (t[e] >= 128) {
					const r = t[e] - 128;
					e + 1 + r > t.length && ut.throwError("data too short", S.errors
					.BUFFER_OVERRUN, {});
					return {
						consumed: 1 + r,
						result: U(t.slice(e + 1, e + 1 + r))
					}
				}
				return {
					consumed: 1,
					result: U(t[e])
				}
			}

			function mt(t) {
				const e = C(t),
					r = pt(e, 0);
				return r.consumed !== e.length && ut.throwArgumentError("invalid rlp data", "data", t),
					r.result
			}
			const gt = new S("address/5.6.0");

			function yt(t) {
				j(t, 20) || gt.throwArgumentError("invalid address", "address", t);
				const e = (t = t.toLowerCase()).substring(2).split(""),
					r = new Uint8Array(40);
				for (let t = 0; t < 40; t++) r[t] = e[t].charCodeAt(0);
				const n = C(at(r));
				for (let t = 0; t < 40; t += 2) n[t >> 1] >> 4 >= 8 && (e[t] = e[t].toUpperCase()), (
					15 & n[t >> 1]) >= 8 && (e[t + 1] = e[t + 1].toUpperCase());
				return "0x" + e.join("")
			}
			const vt = {};
			for (let t = 0; t < 10; t++) vt[String(t)] = String(t);
			for (let t = 0; t < 26; t++) vt[String.fromCharCode(65 + t)] = String(10 + t);
			const bt = Math.floor((wt = 9007199254740991, Math.log10 ? Math.log10(wt) : Math.log(wt) /
				Math.LN10));
			var wt;

			function Et(t) {
				let e = (t = (t = t.toUpperCase()).substring(4) + t.substring(0, 2) + "00").split("")
					.map((t => vt[t])).join("");
				for (; e.length >= bt;) {
					let t = e.substring(0, bt);
					e = parseInt(t, 10) % 97 + e.substring(t.length)
				}
				let r = String(98 - parseInt(e, 10) % 97);
				for (; r.length < 2;) r = "0" + r;
				return r
			}

			function _t(t) {
				let e = null;
				if ("string" != typeof t && gt.throwArgumentError("invalid address", "address", t), t
					.match(/^(0x)?[0-9a-fA-F]{40}$/)) "0x" !== t.substring(0, 2) && (t = "0x" + t), e =
					yt(t), t.match(/([A-F].*[a-f])|([a-f].*[A-F])/) && e !== t && gt.throwArgumentError(
						"bad address checksum", "address", t);
				else if (t.match(/^XE[0-9]{2}[0-9A-Za-z]{30,31}$/)) {
					for (t.substring(2, 4) !== Et(t) && gt.throwArgumentError("bad icap checksum",
							"address", t), r = t.substring(4), e = new X(r, 36).toString(16); e.length <
						40;) e = "0" + e;
					e = yt("0x" + e)
				} else gt.throwArgumentError("invalid address", "address", t);
				var r;
				return e
			}

			function xt(t) {
				let e = null;
				try {
					e = _t(t.from)
				} catch (e) {
					gt.throwArgumentError("missing from address", "transaction", t)
				}
				return _t(q(at(ft([e, F(C(tt.from(t.nonce).toHexString()))])), 12))
			}

			function At(t, e) {
				if (null == t) return {};
				var r, n, i = function(t, e) {
					if (null == t) return {};
					var r, n, i = {},
						o = Object.keys(t);
					for (n = 0; n < o.length; n++) r = o[n], e.indexOf(r) >= 0 || (i[r] = t[r]);
					return i
				}(t, e);
				if (Object.getOwnPropertySymbols) {
					var o = Object.getOwnPropertySymbols(t);
					for (n = 0; n < o.length; n++) r = o[n], e.indexOf(r) >= 0 || Object.prototype
						.propertyIsEnumerable.call(t, r) && (i[r] = t[r])
				}
				return i
			}

			function kt(t) {
				if (void 0 === t) throw new ReferenceError(
					"this hasn't been initialised - super() hasn't been called");
				return t
			}

			function Nt(t, e) {
				return Nt = Object.setPrototypeOf || function(t, e) {
					return t.__proto__ = e, t
				}, Nt(t, e)
			}

			function St(t, e) {
				if ("function" != typeof e && null !== e) throw new TypeError(
					"Super expression must either be null or a function");
				t.prototype = Object.create(e && e.prototype, {
					constructor: {
						value: t,
						writable: !0,
						configurable: !0
					}
				}), Object.defineProperty(t, "prototype", {
					writable: !1
				}), e && Nt(t, e)
			}

			function Pt(t) {
				return Pt = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ?
					function(t) {
						return typeof t
					} : function(t) {
						return t && "function" == typeof Symbol && t.constructor === Symbol && t !==
							Symbol.prototype ? "symbol" : typeof t
					}, Pt(t)
			}

			function Mt(t, e) {
				if (e && ("object" === Pt(e) || "function" == typeof e)) return e;
				if (void 0 !== e) throw new TypeError(
					"Derived constructors may only return object or undefined");
				return kt(t)
			}

			function Ot(t) {
				return Ot = Object.setPrototypeOf ? Object.getPrototypeOf : function(t) {
					return t.__proto__ || Object.getPrototypeOf(t)
				}, Ot(t)
			}
			var It = [{
				id: "mainnet",
				name: "以太坊 Ethereum 主网络",
				symbol: "ETH",
				symbolName: "ETH Coin",
				decimals: 18,
				chainId: "0x1",
				url: "https://mainnet.infura.io/v3/9aa3d95b3bc440fa88ea12eaa4456161",
				explorer: "https://etherscan.io"
			}, {
				id: "ropsten",
				name: "Ropsten 测试网络",
				symbol: "ETH",
				symbolName: "ETH Coin",
				decimals: 18,
				chainId: "0x3",
				url: "https://ropsten.infura.io/v3/9aa3d95b3bc440fa88ea12eaa4456161",
				explorer: "https://ropsten.etherscan.io"
			}, {
				id: "testnet",
				name: "BSC Testnet",
				symbol: "BNB",
				symbolName: "Binance Coin",
				decimals: 18,
				chainId: "0x61",
				url: "https://data-seed-prebsc-1-s1.binance.org:8545",
				explorer: "https://testnet.bscscan.com"
			}, {
				id: "mainnet",
				name: "BSC Mainnet",
				symbol: "BNB",
				symbolName: "Binance Coin",
				decimals: 18,
				chainId: "0x38",
				url: "https://bsc-dataseed.binance.org",
				explorer: "https://bscscan.com"
			}, {
				id: "testnet",
				name: "HECO Testnet",
				symbol: "HT",
				symbolName: "Heco Coin",
				decimals: 18,
				chainId: "0x100",
				url: "https://http-testnet.huobichain.com",
				explorer: "https://testnet.hecoinfo.com"
			}, {
				id: "mainnet",
				name: "HECO Mainnet",
				symbol: "HT",
				symbolName: "Heco Coin",
				decimals: 18,
				chainId: "0x80",
				url: "https://http-mainnet-node.huobichain.com",
				explorer: "https://hecoinfo.com"
			}];
			var Tt = [{
				id: "testnet",
				name: "BSC Testnet",
				chainId: "0x61",
				url: "https://data-seed-prebsc-1-s1.binance.org:8545",
				explorer: "https://api-testnet.bscscan.com/api"
			}, {
				id: "mainnet",
				name: "BSC Mainnet",
				chainId: "0x38",
				url: "https://bsc-dataseed.binance.org",
				explorer: "https://api.bscscan.com/api"
			}];
			class Rt {
				constructor(t) {
					this.name = "Binance Chain Wallet", this._accounts = [], this._enabled = !1,
						t && t.bnbSign && (this.bcWallet = t, this._chainId = void 0, this
							._chainId = void 0, this._onEnabled = void 0, this._currentAccount =
							void 0)
				}
				get isEnabled() {
					return this._enabled
				}
				async enable() {
					const t = await this.bcWallet.request({
						method: "eth_requestAccounts"
					});
					return this._currentAccount = {
						address: t[0]
					}, this._chainId = await this.bcWallet.request({
						method: "eth_chainId"
					}), this.bcWallet.on("chainChanged", (t => {
						this._chainId = t, this._onNetworkChanged && this
							._onNetworkChanged(this.getNetwork())
					})), this.bcWallet.on("accountsChanged", (t => {
						this._currentAccount = {
							address: t[0]
						}, this._onAccountChanged && this._onAccountChanged({
							address: t[0]
						})
					})), this._enabled = !0, this._onEnabled && this._onEnabled({
						address: t[0]
					}), this._chainId
				}
				dispose() {}
				onEnabled(t) {
					return this._onEnabled = t, () => this._onEnabled = void 0
				}
				get chainId() {
					return this._chainId
				}
				getNetwork(t = this.chainId) {
					return {
						chainId: t,
						isBscMainnet: "0x38" === t,
						isBscTestnet: "0x61" === t
					}
				}
				onNetworkChanged(t) {
					return this._onNetworkChanged = t, () => this._onNetworkChanged = void 0
				}
				get currentAccount() {
					return this._currentAccount
				}
				async getAllAccounts() {
					return this._accounts = (await this.bcWallet.requestAccounts()).map((t => (t
							.address = t.addresses.find((t => "eth" === t.type)).address, t
							))), this._accounts
				}
				onAccountChanged(t) {
					return this._onAccountChanged = t, () => this._onAccountChanged = void 0
				}
				async signMessage(t) {
					return await this.bcWallet.request({
						method: "eth_sign",
						params: [this.currentAccount.address, t]
					})
				}
				async signTypedData(t) {
					throw new Error("signTypedData is not supported for Binance Chain Wallet.")
				}
				async sendTransaction(t) {
					return await this.bcWallet.request({
						method: "eth_sendTransaction",
						params: [t]
					})
				}
			}
			class Ct {
				constructor(t) {
					this.name = "MetaMask", this._accounts = [], this._enabled = !1, t && t
						.isMetaMask && (this.ethereum = t, this._chainId = void 0, this._chainId =
							void 0, this._onEnabled = void 0, this._currentAccount = void 0)
				}
				get isEnabled() {
					return this._enabled
				}
				async enable() {
					const t = await this.ethereum.request({
						method: "eth_requestAccounts"
					});
					return this._currentAccount = {
						address: t[0]
					}, this._chainId = await this.ethereum.request({
						method: "eth_chainId"
					}), this.ethereum.on("chainChanged", (t => {
						this._chainId = t, this._onNetworkChanged && this
							._onNetworkChanged(this.getNetwork())
					})), this.ethereum.on("accountsChanged", (t => {
						this._currentAccount = {
							address: t[0]
						}, this._onAccountChanged && this._onAccountChanged({
							address: t[0]
						})
					})), this._enabled = !0, this._onEnabled && this._onEnabled({
						address: t[0]
					}), this._chainId
				}
				dispose() {
					this.ethereum.removeAllListeners("chainChanged"), this.ethereum
						.removeAllListeners("accountsChanged")
				}
				onEnabled(t) {
					return this._onEnabled = t, () => this._onEnabled = void 0
				}
				get chainId() {
					return this._chainId
				}
				getNetwork(t = this.chainId) {
					return {
						chainId: t,
						isBscMainnet: "0x38" === t,
						isBscTestnet: "0x61" === t
					}
				}
				onNetworkChanged(t) {
					return this._onNetworkChanged = t, () => this._onNetworkChanged = void 0
				}
				get currentAccount() {
					return this._currentAccount
				}
				async getAllAccounts() {
					const t = (await this.ethereum.request({
						method: "wallet_getPermissions"
					}))[0].caveats.find((t => "filterResponse" === t.type));
					return this._accounts = (t ? t.value : []).map((t => ({
						address: t
					}))), this._accounts
				}
				onAccountChanged(t) {
					return this._onAccountChanged = t, () => this._onAccountChanged = void 0
				}
				async signMessage(t) {
					return await this.ethereum.request({
						method: "eth_sign",
						params: [this.currentAccount.address, t]
					})
				}
				async signTypedData(t) {
					return await this.ethereum.request({
						method: "eth_signTypedData",
						params: [t, this.currentAccount.address],
						from: this.currentAccount.address
					})
				}
				async sendTransaction(t) {
					return await this.ethereum.request({
						method: "eth_sendTransaction",
						params: [t]
					})
				}
			}
			var Bt = function(t, e, r, n) {
				return new(r || (r = Promise))((function(i, o) {
					function s(t) {
						try {
							u(n.next(t))
						} catch (t) {
							o(t)
						}
					}

					function a(t) {
						try {
							u(n.throw(t))
						} catch (t) {
							o(t)
						}
					}

					function u(t) {
						var e;
						t.done ? i(t.value) : (e = t.value, e instanceof r ? e : new r((
							function(t) {
								t(e)
							}))).then(s, a)
					}
					u((n = n.apply(t, e || [])).next())
				}))
			};
			const Ft = new S("properties/5.6.0");

			function jt(t, e, r) {
				Object.defineProperty(t, e, {
					enumerable: !0,
					value: r,
					writable: !1
				})
			}

			function Lt(t, e) {
				for (let r = 0; r < 32; r++) {
					if (t[e]) return t[e];
					if (!t.prototype || "object" != typeof t.prototype) break;
					t = Object.getPrototypeOf(t.prototype).constructor
				}
				return null
			}

			function Ut(t) {
				return Bt(this, void 0, void 0, (function*() {
					const e = Object.keys(t).map((e => {
						const r = t[e];
						return Promise.resolve(r).then((t => ({
							key: e,
							value: t
						})))
					}));
					return (yield Promise.all(e)).reduce(((t, e) => (t[e.key] = e.value,
						t)), {})
				}))
			}

			function Dt(t) {
				const e = {};
				for (const r in t) e[r] = t[r];
				return e
			}
			const qt = {
				bigint: !0,
				boolean: !0,
				function: !0,
				number: !0,
				string: !0
			};

			function zt(t) {
				if (null == t || qt[typeof t]) return !0;
				if (Array.isArray(t) || "object" == typeof t) {
					if (!Object.isFrozen(t)) return !1;
					const e = Object.keys(t);
					for (let r = 0; r < e.length; r++) {
						let n = null;
						try {
							n = t[e[r]]
						} catch (t) {
							continue
						}
						if (!zt(n)) return !1
					}
					return !0
				}
				return Ft.throwArgumentError("Cannot deepCopy " + typeof t, "object", t)
			}

			function Gt(t) {
				if (zt(t)) return t;
				if (Array.isArray(t)) return Object.freeze(t.map((t => Vt(t))));
				if ("object" == typeof t) {
					const e = {};
					for (const r in t) {
						const n = t[r];
						void 0 !== n && jt(e, r, Vt(n))
					}
					return e
				}
				return Ft.throwArgumentError("Cannot deepCopy " + typeof t, "object", t)
			}

			function Vt(t) {
				return Gt(t)
			}
			class Ht {
				constructor(t) {
					for (const e in t) this[e] = Vt(t[e])
				}
			}
			const $t = "abi/5.6.0",
				Wt = new S($t);
			class Jt {
				constructor(t, e, r, n) {
					this.name = t, this.type = e, this.localName = r, this.dynamic = n
				}
				_throwError(t, e) {
					Wt.throwArgumentError(t, this.localName, e)
				}
			}
			class Xt {
				constructor(t) {
					jt(this, "wordSize", t || 32), this._data = [], this._dataLength = 0, this
						._padding = new Uint8Array(t)
				}
				get data() {
					return z(this._data)
				}
				get length() {
					return this._dataLength
				}
				_writeData(t) {
					return this._data.push(t), this._dataLength += t.length, t.length
				}
				appendWriter(t) {
					return this._writeData(B(t._data))
				}
				writeBytes(t) {
					let e = C(t);
					const r = e.length % this.wordSize;
					return r && (e = B([e, this._padding.slice(r)])), this._writeData(e)
				}
				_getValue(t) {
					let e = C(tt.from(t));
					return e.length > this.wordSize && Wt.throwError("value out-of-bounds", S.errors
						.BUFFER_OVERRUN, {
							length: this.wordSize,
							offset: e.length
						}), e.length % this.wordSize && (e = B([this._padding.slice(e.length %
						this.wordSize), e])), e
				}
				writeValue(t) {
					return this._writeData(this._getValue(t))
				}
				writeUpdatableValue() {
					const t = this._data.length;
					return this._data.push(this._padding), this._dataLength += this.wordSize, e => {
						this._data[t] = this._getValue(e)
					}
				}
			}
			class Kt {
				constructor(t, e, r, n) {
					jt(this, "_data", C(t)), jt(this, "wordSize", e || 32), jt(this, "_coerceFunc",
						r), jt(this, "allowLoose", n), this._offset = 0
				}
				get data() {
					return U(this._data)
				}
				get consumed() {
					return this._offset
				}
				static coerce(t, e) {
					let r = t.match("^u?int([0-9]+)$");
					return r && parseInt(r[1]) <= 48 && (e = e.toNumber()), e
				}
				coerce(t, e) {
					return this._coerceFunc ? this._coerceFunc(t, e) : Kt.coerce(t, e)
				}
				_peekBytes(t, e, r) {
					let n = Math.ceil(e / this.wordSize) * this.wordSize;
					return this._offset + n > this._data.length && (this.allowLoose && r && this
						._offset + e <= this._data.length ? n = e : Wt.throwError(
							"data out-of-bounds", S.errors.BUFFER_OVERRUN, {
								length: this._data.length,
								offset: this._offset + n
							})), this._data.slice(this._offset, this._offset + n)
				}
				subReader(t) {
					return new Kt(this._data.slice(this._offset + t), this.wordSize, this
						._coerceFunc, this.allowLoose)
				}
				readBytes(t, e) {
					let r = this._peekBytes(0, t, !!e);
					return this._offset += r.length, r.slice(0, t)
				}
				readValue() {
					return tt.from(this.readBytes(this.wordSize))
				}
			}
			const Zt = new S("strings/5.6.0");
			var Qt, Yt;

			function te(t, e, r, n, i) {
				if (t === Yt.BAD_PREFIX || t === Yt.UNEXPECTED_CONTINUE) {
					let t = 0;
					for (let n = e + 1; n < r.length && r[n] >> 6 == 2; n++) t++;
					return t
				}
				return t === Yt.OVERRUN ? r.length - e - 1 : 0
			}! function(t) {
				t.current = "", t.NFC = "NFC", t.NFD = "NFD", t.NFKC = "NFKC", t.NFKD = "NFKD"
			}(Qt || (Qt = {})),
			function(t) {
				t.UNEXPECTED_CONTINUE = "unexpected continuation byte", t.BAD_PREFIX =
					"bad codepoint prefix", t.OVERRUN = "string overrun", t.MISSING_CONTINUE =
					"missing continuation byte", t.OUT_OF_RANGE = "out of UTF-8 range", t
					.UTF16_SURROGATE = "UTF-16 surrogate", t.OVERLONG = "overlong representation"
			}(Yt || (Yt = {}));
			const ee = Object.freeze({
				error: function(t, e, r, n, i) {
					return Zt.throwArgumentError(`invalid codepoint at offset ${e}; ${t}`,
						"bytes", r)
				},
				ignore: te,
				replace: function(t, e, r, n, i) {
					return t === Yt.OVERLONG ? (n.push(i), 0) : (n.push(65533), te(t, e, r))
				}
			});

			function re(t, e) {
				null == e && (e = ee.error), t = C(t);
				const r = [];
				let n = 0;
				for (; n < t.length;) {
					const i = t[n++];
					if (i >> 7 == 0) {
						r.push(i);
						continue
					}
					let o = null,
						s = null;
					if (192 == (224 & i)) o = 1, s = 127;
					else if (224 == (240 & i)) o = 2, s = 2047;
					else {
						if (240 != (248 & i)) {
							n += e(128 == (192 & i) ? Yt.UNEXPECTED_CONTINUE : Yt.BAD_PREFIX, n - 1, t,
								r);
							continue
						}
						o = 3, s = 65535
					}
					if (n - 1 + o >= t.length) {
						n += e(Yt.OVERRUN, n - 1, t, r);
						continue
					}
					let a = i & (1 << 8 - o - 1) - 1;
					for (let i = 0; i < o; i++) {
						let i = t[n];
						if (128 != (192 & i)) {
							n += e(Yt.MISSING_CONTINUE, n, t, r), a = null;
							break
						}
						a = a << 6 | 63 & i, n++
					}
					null !== a && (a > 1114111 ? n += e(Yt.OUT_OF_RANGE, n - 1 - o, t, r, a) : a >=
						55296 && a <= 57343 ? n += e(Yt.UTF16_SURROGATE, n - 1 - o, t, r, a) : a <=
						s ? n += e(Yt.OVERLONG, n - 1 - o, t, r, a) : r.push(a))
				}
				return r
			}

			function ne(t, e = Qt.current) {
				e != Qt.current && (Zt.checkNormalize(), t = t.normalize(e));
				let r = [];
				for (let e = 0; e < t.length; e++) {
					const n = t.charCodeAt(e);
					if (n < 128) r.push(n);
					else if (n < 2048) r.push(n >> 6 | 192), r.push(63 & n | 128);
					else if (55296 == (64512 & n)) {
						e++;
						const i = t.charCodeAt(e);
						if (e >= t.length || 56320 != (64512 & i)) throw new Error(
							"invalid utf-8 string");
						const o = 65536 + ((1023 & n) << 10) + (1023 & i);
						r.push(o >> 18 | 240), r.push(o >> 12 & 63 | 128), r.push(o >> 6 & 63 | 128), r
							.push(63 & o | 128)
					} else r.push(n >> 12 | 224), r.push(n >> 6 & 63 | 128), r.push(63 & n | 128)
				}
				return C(r)
			}

			function ie(t) {
				return t.map((t => t <= 65535 ? String.fromCharCode(t) : (t -= 65536, String
					.fromCharCode(55296 + (t >> 10 & 1023), 56320 + (1023 & t))))).join("")
			}

			function oe(t, e) {
				return ie(re(t, e))
			}

			function se(t, e = Qt.current) {
				return re(ne(t, e))
			}

			function ae(t) {
				return at(ne(t))
			}
			class ue extends Jt {
				constructor(t) {
					super("address", "address", t, !1)
				}
				defaultValue() {
					return "0x0000000000000000000000000000000000000000"
				}
				encode(t, e) {
					try {
						e = _t(e)
					} catch (t) {
						this._throwError(t.message, e)
					}
					return t.writeValue(e)
				}
				decode(t) {
					return _t(V(t.readValue().toHexString(), 20))
				}
			}
			class ce extends Jt {
				constructor(t) {
					super(t.name, t.type, void 0, t.dynamic), this.coder = t
				}
				defaultValue() {
					return this.coder.defaultValue()
				}
				encode(t, e) {
					return this.coder.encode(t, e)
				}
				decode(t) {
					return this.coder.decode(t)
				}
			}
			const le = new S($t);

			function he(t, e, r) {
				let n = null;
				if (Array.isArray(r)) n = r;
				else if (r && "object" == typeof r) {
					let t = {};
					n = e.map((e => {
						const n = e.localName;
						return n || le.throwError(
							"cannot encode object for signature with missing names", S
							.errors.INVALID_ARGUMENT, {
								argument: "values",
								coder: e,
								value: r
							}), t[n] && le.throwError(
							"cannot encode object for signature with duplicate names", S
							.errors.INVALID_ARGUMENT, {
								argument: "values",
								coder: e,
								value: r
							}), t[n] = !0, r[n]
					}))
				} else le.throwArgumentError("invalid tuple value", "tuple", r);
				e.length !== n.length && le.throwArgumentError("types/value length mismatch", "tuple",
					r);
				let i = new Xt(t.wordSize),
					o = new Xt(t.wordSize),
					s = [];
				e.forEach(((t, e) => {
					let r = n[e];
					if (t.dynamic) {
						let e = o.length;
						t.encode(o, r);
						let n = i.writeUpdatableValue();
						s.push((t => {
							n(t + e)
						}))
					} else t.encode(i, r)
				})), s.forEach((t => {
					t(i.length)
				}));
				let a = t.appendWriter(i);
				return a += t.appendWriter(o), a
			}

			function fe(t, e) {
				let r = [],
					n = t.subReader(0);
				e.forEach((e => {
					let i = null;
					if (e.dynamic) {
						let r = t.readValue(),
							o = n.subReader(r.toNumber());
						try {
							i = e.decode(o)
						} catch (t) {
							if (t.code === S.errors.BUFFER_OVERRUN) throw t;
							i = t, i.baseType = e.name, i.name = e.localName, i.type = e
								.type
						}
					} else try {
						i = e.decode(t)
					} catch (t) {
						if (t.code === S.errors.BUFFER_OVERRUN) throw t;
						i = t, i.baseType = e.name, i.name = e.localName, i.type = e
							.type
					}
					null != i && r.push(i)
				}));
				const i = e.reduce(((t, e) => {
					const r = e.localName;
					return r && (t[r] || (t[r] = 0), t[r]++), t
				}), {});
				e.forEach(((t, e) => {
					let n = t.localName;
					if (!n || 1 !== i[n]) return;
					if ("length" === n && (n = "_length"), null != r[n]) return;
					const o = r[e];
					o instanceof Error ? Object.defineProperty(r, n, {
						enumerable: !0,
						get: () => {
							throw o
						}
					}) : r[n] = o
				}));
				for (let t = 0; t < r.length; t++) {
					const e = r[t];
					e instanceof Error && Object.defineProperty(r, t, {
						enumerable: !0,
						get: () => {
							throw e
						}
					})
				}
				return Object.freeze(r)
			}
			class de extends Jt {
				constructor(t, e, r) {
					super("array", t.type + "[" + (e >= 0 ? e : "") + "]", r, -1 === e || t
						.dynamic), this.coder = t, this.length = e
				}
				defaultValue() {
					const t = this.coder.defaultValue(),
						e = [];
					for (let r = 0; r < this.length; r++) e.push(t);
					return e
				}
				encode(t, e) {
					Array.isArray(e) || this._throwError("expected array value", e);
					let r = this.length; - 1 === r && (r = e.length, t.writeValue(e.length)), le
						.checkArgumentCount(e.length, r, "coder array" + (this.localName ? " " +
							this.localName : ""));
					let n = [];
					for (let t = 0; t < e.length; t++) n.push(this.coder);
					return he(t, n, e)
				}
				decode(t) {
					let e = this.length; - 1 === e && (e = t.readValue().toNumber(), 32 * e > t
						._data.length && le.throwError("insufficient data length", S.errors
							.BUFFER_OVERRUN, {
								length: t._data.length,
								count: e
							}));
					let r = [];
					for (let t = 0; t < e; t++) r.push(new ce(this.coder));
					return t.coerce(this.name, fe(t, r))
				}
			}
			class pe extends Jt {
				constructor(t) {
					super("bool", "bool", t, !1)
				}
				defaultValue() {
					return !1
				}
				encode(t, e) {
					return t.writeValue(e ? 1 : 0)
				}
				decode(t) {
					return t.coerce(this.type, !t.readValue().isZero())
				}
			}
			class me extends Jt {
				constructor(t, e) {
					super(t, t, e, !0)
				}
				defaultValue() {
					return "0x"
				}
				encode(t, e) {
					e = C(e);
					let r = t.writeValue(e.length);
					return r += t.writeBytes(e), r
				}
				decode(t) {
					return t.readBytes(t.readValue().toNumber(), !0)
				}
			}
			class ge extends me {
				constructor(t) {
					super("bytes", t)
				}
				decode(t) {
					return t.coerce(this.name, U(super.decode(t)))
				}
			}
			class ye extends Jt {
				constructor(t, e) {
					let r = "bytes" + String(t);
					super(r, r, e, !1), this.size = t
				}
				defaultValue() {
					return "0x0000000000000000000000000000000000000000000000000000000000000000"
						.substring(0, 2 + 2 * this.size)
				}
				encode(t, e) {
					let r = C(e);
					return r.length !== this.size && this._throwError("incorrect data length", e), t
						.writeBytes(r)
				}
				decode(t) {
					return t.coerce(this.name, U(t.readBytes(this.size)))
				}
			}
			class ve extends Jt {
				constructor(t) {
					super("null", "", t, !1)
				}
				defaultValue() {
					return null
				}
				encode(t, e) {
					return null != e && this._throwError("not null", e), t.writeBytes([])
				}
				decode(t) {
					return t.readBytes(0), t.coerce(this.name, null)
				}
			}
			const be = tt.from(-1),
				we = tt.from(0),
				Ee = tt.from(1),
				_e = tt.from("0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff");
			class xe extends Jt {
				constructor(t, e, r) {
					const n = (e ? "int" : "uint") + 8 * t;
					super(n, n, r, !1), this.size = t, this.signed = e
				}
				defaultValue() {
					return 0
				}
				encode(t, e) {
					let r = tt.from(e),
						n = _e.mask(8 * t.wordSize);
					if (this.signed) {
						let t = n.mask(8 * this.size - 1);
						(r.gt(t) || r.lt(t.add(Ee).mul(be))) && this._throwError(
							"value out-of-bounds", e)
					} else(r.lt(we) || r.gt(n.mask(8 * this.size))) && this._throwError(
						"value out-of-bounds", e);
					return r = r.toTwos(8 * this.size).mask(8 * this.size), this.signed && (r = r
						.fromTwos(8 * this.size).toTwos(8 * t.wordSize)), t.writeValue(r)
				}
				decode(t) {
					let e = t.readValue().mask(8 * this.size);
					return this.signed && (e = e.fromTwos(8 * this.size)), t.coerce(this.name, e)
				}
			}
			class Ae extends me {
				constructor(t) {
					super("string", t)
				}
				defaultValue() {
					return ""
				}
				encode(t, e) {
					return super.encode(t, ne(e))
				}
				decode(t) {
					return oe(super.decode(t))
				}
			}
			class ke extends Jt {
				constructor(t, e) {
					let r = !1;
					const n = [];
					t.forEach((t => {
						t.dynamic && (r = !0), n.push(t.type)
					}));
					super("tuple", "tuple(" + n.join(",") + ")", e, r), this.coders = t
				}
				defaultValue() {
					const t = [];
					this.coders.forEach((e => {
						t.push(e.defaultValue())
					}));
					const e = this.coders.reduce(((t, e) => {
						const r = e.localName;
						return r && (t[r] || (t[r] = 0), t[r]++), t
					}), {});
					return this.coders.forEach(((r, n) => {
						let i = r.localName;
						i && 1 === e[i] && ("length" === i && (i = "_length"), null ==
							t[i] && (t[i] = t[n]))
					})), Object.freeze(t)
				}
				encode(t, e) {
					return he(t, this.coders, e)
				}
				decode(t) {
					return t.coerce(this.name, fe(t, this.coders))
				}
			}
			const Ne = new S($t),
				Se = {};
			let Pe = {
					calldata: !0,
					memory: !0,
					storage: !0
				},
				Me = {
					calldata: !0,
					memory: !0
				};

			function Oe(t, e) {
				if ("bytes" === t || "string" === t) {
					if (Pe[e]) return !0
				} else if ("address" === t) {
					if ("payable" === e) return !0
				} else if ((t.indexOf("[") >= 0 || "tuple" === t) && Me[e]) return !0;
				return (Pe[e] || "payable" === e) && Ne.throwArgumentError("invalid modifier", "name",
					e), !1
			}

			function Ie(t, e) {
				for (let r in e) jt(t, r, e[r])
			}
			const Te = Object.freeze({
					sighash: "sighash",
					minimal: "minimal",
					full: "full",
					json: "json"
				}),
				Re = new RegExp(/^(.*)\[([0-9]*)\]$/);
			class Ce {
				constructor(t, e) {
					t !== Se && Ne.throwError("use fromString", S.errors.UNSUPPORTED_OPERATION, {
						operation: "new ParamType()"
					}), Ie(this, e);
					let r = this.type.match(Re);
					Ie(this, r ? {
						arrayLength: parseInt(r[2] || "-1"),
						arrayChildren: Ce.fromObject({
							type: r[1],
							components: this.components
						}),
						baseType: "array"
					} : {
						arrayLength: null,
						arrayChildren: null,
						baseType: null != this.components ? "tuple" : this.type
					}), this._isParamType = !0, Object.freeze(this)
				}
				format(t) {
					if (t || (t = Te.sighash), Te[t] || Ne.throwArgumentError("invalid format type",
							"format", t), t === Te.json) {
						let e = {
							type: "tuple" === this.baseType ? "tuple" : this.type,
							name: this.name || void 0
						};
						return "boolean" == typeof this.indexed && (e.indexed = this.indexed), this
							.components && (e.components = this.components.map((e => JSON.parse(e
								.format(t))))), JSON.stringify(e)
					}
					let e = "";
					return "array" === this.baseType ? (e += this.arrayChildren.format(t), e +=
							"[" + (this.arrayLength < 0 ? "" : String(this.arrayLength)) + "]") :
						"tuple" === this.baseType ? (t !== Te.sighash && (e += this.type), e +=
							"(" + this.components.map((e => e.format(t))).join(t === Te.full ?
								", " : ",") + ")") : e += this.type, t !== Te.sighash && (!0 ===
							this.indexed && (e += " indexed"), t === Te.full && this.name && (e +=
								" " + this.name)), e
				}
				static from(t, e) {
					return "string" == typeof t ? Ce.fromString(t, e) : Ce.fromObject(t)
				}
				static fromObject(t) {
					return Ce.isParamType(t) ? t : new Ce(Se, {
						name: t.name || null,
						type: He(t.type),
						indexed: null == t.indexed ? null : !!t.indexed,
						components: t.components ? t.components.map(Ce.fromObject) : null
					})
				}
				static fromString(t, e) {
					return r = function(t, e) {
						let r = t;

						function n(e) {
							Ne.throwArgumentError(`unexpected character at position ${e}`,
								"param", t)
						}

						function i(t) {
							let r = {
								type: "",
								name: "",
								parent: t,
								state: {
									allowType: !0
								}
							};
							return e && (r.indexed = !1), r
						}
						t = t.replace(/\s/g, " ");
						let o = {
								type: "",
								name: "",
								state: {
									allowType: !0
								}
							},
							s = o;
						for (let r = 0; r < t.length; r++) {
							let o = t[r];
							switch (o) {
								case "(":
									s.state.allowType && "" === s.type ? s.type = "tuple" : s
										.state.allowParams || n(r), s.state.allowType = !1, s
										.type = He(s.type), s.components = [i(s)], s = s
										.components[0];
									break;
								case ")":
									delete s.state, "indexed" === s.name && (e || n(r), s
										.indexed = !0, s.name = ""), Oe(s.type, s.name) && (
										s.name = ""), s.type = He(s.type);
									let t = s;
									s = s.parent, s || n(r), delete t.parent, s.state
										.allowParams = !1, s.state.allowName = !0, s.state
										.allowArray = !0;
									break;
								case ",":
									delete s.state, "indexed" === s.name && (e || n(r), s
										.indexed = !0, s.name = ""), Oe(s.type, s.name) && (
										s.name = ""), s.type = He(s.type);
									let a = i(s.parent);
									s.parent.components.push(a), delete s.parent, s = a;
									break;
								case " ":
									s.state.allowType && "" !== s.type && (s.type = He(s.type),
											delete s.state.allowType, s.state.allowName = !0, s
											.state.allowParams = !0), s.state.allowName &&
										"" !== s.name && ("indexed" === s.name ? (e || n(r), s
												.indexed && n(r), s.indexed = !0, s.name = "") :
											Oe(s.type, s.name) ? s.name = "" : s.state
											.allowName = !1);
									break;
								case "[":
									s.state.allowArray || n(r), s.type += o, s.state
										.allowArray = !1, s.state.allowName = !1, s.state
										.readArray = !0;
									break;
								case "]":
									s.state.readArray || n(r), s.type += o, s.state
										.readArray = !1, s.state.allowArray = !0, s.state
										.allowName = !0;
									break;
								default:
									s.state.allowType ? (s.type += o, s.state.allowParams = !0,
											s.state.allowArray = !0) : s.state.allowName ? (s
											.name += o, delete s.state.allowArray) : s.state
										.readArray ? s.type += o : n(r)
							}
						}
						return s.parent && Ne.throwArgumentError("unexpected eof", "param", t),
							delete o.state, "indexed" === s.name ? (e || n(r.length - 7), s
								.indexed && n(r.length - 7), s.indexed = !0, s.name = "") : Oe(s
								.type, s.name) && (s.name = ""), o.type = He(o.type), o
					}(t, !!e), Ce.fromObject({
						name: r.name,
						type: r.type,
						indexed: r.indexed,
						components: r.components
					});
					var r
				}
				static isParamType(t) {
					return !(null == t || !t._isParamType)
				}
			}

			function Be(t, e) {
				return function(t) {
					t = t.trim();
					let e = [],
						r = "",
						n = 0;
					for (let i = 0; i < t.length; i++) {
						let o = t[i];
						"," === o && 0 === n ? (e.push(r), r = "") : (r += o, "(" === o ? n++ :
							")" === o && (n--, -1 === n && Ne.throwArgumentError(
								"unbalanced parenthesis", "value", t)))
					}
					r && e.push(r);
					return e
				}(t).map((t => Ce.fromString(t, e)))
			}
			class Fe {
				constructor(t, e) {
					t !== Se && Ne.throwError("use a static from method", S.errors
						.UNSUPPORTED_OPERATION, {
							operation: "new Fragment()"
						}), Ie(this, e), this._isFragment = !0, Object.freeze(this)
				}
				static from(t) {
					return Fe.isFragment(t) ? t : "string" == typeof t ? Fe.fromString(t) : Fe
						.fromObject(t)
				}
				static fromObject(t) {
					if (Fe.isFragment(t)) return t;
					switch (t.type) {
						case "function":
							return ze.fromObject(t);
						case "event":
							return je.fromObject(t);
						case "constructor":
							return qe.fromObject(t);
						case "error":
							return Ve.fromObject(t);
						case "fallback":
						case "receive":
							return null
					}
					return Ne.throwArgumentError("invalid fragment object", "value", t)
				}
				static fromString(t) {
					return "event" === (t = (t = (t = t.replace(/\s/g, " ")).replace(/\(/g, " (")
							.replace(/\)/g, ") ").replace(/\s+/g, " ")).trim()).split(" ")[0] ? je
						.fromString(t.substring(5).trim()) : "function" === t.split(" ")[0] ? ze
						.fromString(t.substring(8).trim()) : "constructor" === t.split("(")[0]
						.trim() ? qe.fromString(t.trim()) : "error" === t.split(" ")[0] ? Ve
						.fromString(t.substring(5).trim()) : Ne.throwArgumentError(
							"unsupported fragment", "value", t)
				}
				static isFragment(t) {
					return !(!t || !t._isFragment)
				}
			}
			class je extends Fe {
				format(t) {
					if (t || (t = Te.sighash), Te[t] || Ne.throwArgumentError("invalid format type",
							"format", t), t === Te.json) return JSON.stringify({
						type: "event",
						anonymous: this.anonymous,
						name: this.name,
						inputs: this.inputs.map((e => JSON.parse(e.format(t))))
					});
					let e = "";
					return t !== Te.sighash && (e += "event "), e += this.name + "(" + this.inputs
						.map((e => e.format(t))).join(t === Te.full ? ", " : ",") + ") ", t !== Te
						.sighash && this.anonymous && (e += "anonymous "), e.trim()
				}
				static from(t) {
					return "string" == typeof t ? je.fromString(t) : je.fromObject(t)
				}
				static fromObject(t) {
					if (je.isEventFragment(t)) return t;
					"event" !== t.type && Ne.throwArgumentError("invalid event object", "value", t);
					const e = {
						name: We(t.name),
						anonymous: t.anonymous,
						inputs: t.inputs ? t.inputs.map(Ce.fromObject) : [],
						type: "event"
					};
					return new je(Se, e)
				}
				static fromString(t) {
					let e = t.match(Je);
					e || Ne.throwArgumentError("invalid event string", "value", t);
					let r = !1;
					return e[3].split(" ").forEach((t => {
						switch (t.trim()) {
							case "anonymous":
								r = !0;
								break;
							case "":
								break;
							default:
								Ne.warn("unknown modifier: " + t)
						}
					})), je.fromObject({
						name: e[1].trim(),
						anonymous: r,
						inputs: Be(e[2], !0),
						type: "event"
					})
				}
				static isEventFragment(t) {
					return t && t._isFragment && "event" === t.type
				}
			}

			function Le(t, e) {
				e.gas = null;
				let r = t.split("@");
				return 1 !== r.length ? (r.length > 2 && Ne.throwArgumentError(
						"invalid human-readable ABI signature", "value", t), r[1].match(
					/^[0-9]+$/) || Ne.throwArgumentError("invalid human-readable ABI signature gas",
						"value", t), e.gas = tt.from(r[1]), r[0]) : t
			}

			function Ue(t, e) {
				e.constant = !1, e.payable = !1, e.stateMutability = "nonpayable", t.split(" ").forEach(
					(t => {
						switch (t.trim()) {
							case "constant":
								e.constant = !0;
								break;
							case "payable":
								e.payable = !0, e.stateMutability = "payable";
								break;
							case "nonpayable":
								e.payable = !1, e.stateMutability = "nonpayable";
								break;
							case "pure":
								e.constant = !0, e.stateMutability = "pure";
								break;
							case "view":
								e.constant = !0, e.stateMutability = "view";
								break;
							case "external":
							case "public":
							case "":
								break;
							default:
								console.log("unknown modifier: " + t)
						}
					}))
			}

			function De(t) {
				let e = {
					constant: !1,
					payable: !0,
					stateMutability: "payable"
				};
				return null != t.stateMutability ? (e.stateMutability = t.stateMutability, e.constant =
						"view" === e.stateMutability || "pure" === e.stateMutability, null != t
						.constant && !!t.constant !== e.constant && Ne.throwArgumentError(
							"cannot have constant function with mutability " + e.stateMutability,
							"value", t), e.payable = "payable" === e.stateMutability, null != t
						.payable && !!t.payable !== e.payable && Ne.throwArgumentError(
							"cannot have payable function with mutability " + e.stateMutability,
							"value", t)) : null != t.payable ? (e.payable = !!t.payable, null != t
						.constant || e.payable || "constructor" === t.type || Ne.throwArgumentError(
							"unable to determine stateMutability", "value", t), e.constant = !!t
						.constant, e.constant ? e.stateMutability = "view" : e.stateMutability = e
						.payable ? "payable" : "nonpayable", e.payable && e.constant && Ne
						.throwArgumentError("cannot have constant payable function", "value", t)) :
					null != t.constant ? (e.constant = !!t.constant, e.payable = !e.constant, e
						.stateMutability = e.constant ? "view" : "payable") : "constructor" !== t
					.type && Ne.throwArgumentError("unable to determine stateMutability", "value", t), e
			}
			class qe extends Fe {
				format(t) {
					if (t || (t = Te.sighash), Te[t] || Ne.throwArgumentError("invalid format type",
							"format", t), t === Te.json) return JSON.stringify({
						type: "constructor",
						stateMutability: "nonpayable" !== this.stateMutability ? this
							.stateMutability : void 0,
						payable: this.payable,
						gas: this.gas ? this.gas.toNumber() : void 0,
						inputs: this.inputs.map((e => JSON.parse(e.format(t))))
					});
					t === Te.sighash && Ne.throwError("cannot format a constructor for sighash", S
						.errors.UNSUPPORTED_OPERATION, {
							operation: "format(sighash)"
						});
					let e = "constructor(" + this.inputs.map((e => e.format(t))).join(t === Te
						.full ? ", " : ",") + ") ";
					return this.stateMutability && "nonpayable" !== this.stateMutability && (e +=
						this.stateMutability + " "), e.trim()
				}
				static from(t) {
					return "string" == typeof t ? qe.fromString(t) : qe.fromObject(t)
				}
				static fromObject(t) {
					if (qe.isConstructorFragment(t)) return t;
					"constructor" !== t.type && Ne.throwArgumentError("invalid constructor object",
						"value", t);
					let e = De(t);
					e.constant && Ne.throwArgumentError("constructor cannot be constant", "value",
						t);
					const r = {
						name: null,
						type: t.type,
						inputs: t.inputs ? t.inputs.map(Ce.fromObject) : [],
						payable: e.payable,
						stateMutability: e.stateMutability,
						gas: t.gas ? tt.from(t.gas) : null
					};
					return new qe(Se, r)
				}
				static fromString(t) {
					let e = {
							type: "constructor"
						},
						r = (t = Le(t, e)).match(Je);
					return r && "constructor" === r[1].trim() || Ne.throwArgumentError(
						"invalid constructor string", "value", t), e.inputs = Be(r[2].trim(), !
						1), Ue(r[3].trim(), e), qe.fromObject(e)
				}
				static isConstructorFragment(t) {
					return t && t._isFragment && "constructor" === t.type
				}
			}
			class ze extends qe {
				format(t) {
					if (t || (t = Te.sighash), Te[t] || Ne.throwArgumentError("invalid format type",
							"format", t), t === Te.json) return JSON.stringify({
						type: "function",
						name: this.name,
						constant: this.constant,
						stateMutability: "nonpayable" !== this.stateMutability ? this
							.stateMutability : void 0,
						payable: this.payable,
						gas: this.gas ? this.gas.toNumber() : void 0,
						inputs: this.inputs.map((e => JSON.parse(e.format(t)))),
						outputs: this.outputs.map((e => JSON.parse(e.format(t))))
					});
					let e = "";
					return t !== Te.sighash && (e += "function "), e += this.name + "(" + this
						.inputs.map((e => e.format(t))).join(t === Te.full ? ", " : ",") + ") ",
						t !== Te.sighash && (this.stateMutability ? "nonpayable" !== this
							.stateMutability && (e += this.stateMutability + " ") : this.constant &&
							(e += "view "), this.outputs && this.outputs.length && (e +=
								"returns (" + this.outputs.map((e => e.format(t))).join(", ") + ") "
								), null != this.gas && (e += "@" + this.gas.toString() + " ")), e
						.trim()
				}
				static from(t) {
					return "string" == typeof t ? ze.fromString(t) : ze.fromObject(t)
				}
				static fromObject(t) {
					if (ze.isFunctionFragment(t)) return t;
					"function" !== t.type && Ne.throwArgumentError("invalid function object",
						"value", t);
					let e = De(t);
					const r = {
						type: t.type,
						name: We(t.name),
						constant: e.constant,
						inputs: t.inputs ? t.inputs.map(Ce.fromObject) : [],
						outputs: t.outputs ? t.outputs.map(Ce.fromObject) : [],
						payable: e.payable,
						stateMutability: e.stateMutability,
						gas: t.gas ? tt.from(t.gas) : null
					};
					return new ze(Se, r)
				}
				static fromString(t) {
					let e = {
							type: "function"
						},
						r = (t = Le(t, e)).split(" returns ");
					r.length > 2 && Ne.throwArgumentError("invalid function string", "value", t);
					let n = r[0].match(Je);
					if (n || Ne.throwArgumentError("invalid function signature", "value", t), e
						.name = n[1].trim(), e.name && We(e.name), e.inputs = Be(n[2], !1), Ue(n[3]
							.trim(), e), r.length > 1) {
						let n = r[1].match(Je);
						"" == n[1].trim() && "" == n[3].trim() || Ne.throwArgumentError(
							"unexpected tokens", "value", t), e.outputs = Be(n[2], !1)
					} else e.outputs = [];
					return ze.fromObject(e)
				}
				static isFunctionFragment(t) {
					return t && t._isFragment && "function" === t.type
				}
			}

			function Ge(t) {
				const e = t.format();
				return "Error(string)" !== e && "Panic(uint256)" !== e || Ne.throwArgumentError(
					`cannot specify user defined ${e} error`, "fragment", t), t
			}
			class Ve extends Fe {
				format(t) {
					if (t || (t = Te.sighash), Te[t] || Ne.throwArgumentError("invalid format type",
							"format", t), t === Te.json) return JSON.stringify({
						type: "error",
						name: this.name,
						inputs: this.inputs.map((e => JSON.parse(e.format(t))))
					});
					let e = "";
					return t !== Te.sighash && (e += "error "), e += this.name + "(" + this.inputs
						.map((e => e.format(t))).join(t === Te.full ? ", " : ",") + ") ", e.trim()
				}
				static from(t) {
					return "string" == typeof t ? Ve.fromString(t) : Ve.fromObject(t)
				}
				static fromObject(t) {
					if (Ve.isErrorFragment(t)) return t;
					"error" !== t.type && Ne.throwArgumentError("invalid error object", "value", t);
					const e = {
						type: t.type,
						name: We(t.name),
						inputs: t.inputs ? t.inputs.map(Ce.fromObject) : []
					};
					return Ge(new Ve(Se, e))
				}
				static fromString(t) {
					let e = {
							type: "error"
						},
						r = t.match(Je);
					return r || Ne.throwArgumentError("invalid error signature", "value", t), e
						.name = r[1].trim(), e.name && We(e.name), e.inputs = Be(r[2], !1), Ge(Ve
							.fromObject(e))
				}
				static isErrorFragment(t) {
					return t && t._isFragment && "error" === t.type
				}
			}

			function He(t) {
				return t.match(/^uint($|[^1-9])/) ? t = "uint256" + t.substring(4) : t.match(
					/^int($|[^1-9])/) && (t = "int256" + t.substring(3)), t
			}
			const $e = new RegExp("^[a-zA-Z$_][a-zA-Z0-9$_]*$");

			function We(t) {
				return t && t.match($e) || Ne.throwArgumentError(`invalid identifier "${t}"`, "value",
					t), t
			}
			const Je = new RegExp("^([^)(]*)\\((.*)\\)([^)(]*)$");
			const Xe = new S($t),
				Ke = new RegExp(/^bytes([0-9]*)$/),
				Ze = new RegExp(/^(u?int)([0-9]*)$/);
			class Qe {
				constructor(t) {
					Xe.checkNew(new.target, Qe), jt(this, "coerceFunc", t || null)
				}
				_getCoder(t) {
					switch (t.baseType) {
						case "address":
							return new ue(t.name);
						case "bool":
							return new pe(t.name);
						case "string":
							return new Ae(t.name);
						case "bytes":
							return new ge(t.name);
						case "array":
							return new de(this._getCoder(t.arrayChildren), t.arrayLength, t.name);
						case "tuple":
							return new ke((t.components || []).map((t => this._getCoder(t))), t
								.name);
						case "":
							return new ve(t.name)
					}
					let e = t.type.match(Ze);
					if (e) {
						let r = parseInt(e[2] || "256");
						return (0 === r || r > 256 || r % 8 != 0) && Xe.throwArgumentError(
							"invalid " + e[1] + " bit length", "param", t), new xe(r / 8,
							"int" === e[1], t.name)
					}
					if (e = t.type.match(Ke), e) {
						let r = parseInt(e[1]);
						return (0 === r || r > 32) && Xe.throwArgumentError("invalid bytes length",
							"param", t), new ye(r, t.name)
					}
					return Xe.throwArgumentError("invalid type", "type", t.type)
				}
				_getWordSize() {
					return 32
				}
				_getReader(t, e) {
					return new Kt(t, this._getWordSize(), this.coerceFunc, e)
				}
				_getWriter() {
					return new Xt(this._getWordSize())
				}
				getDefaultValue(t) {
					const e = t.map((t => this._getCoder(Ce.from(t))));
					return new ke(e, "_").defaultValue()
				}
				encode(t, e) {
					t.length !== e.length && Xe.throwError("types/values length mismatch", S.errors
						.INVALID_ARGUMENT, {
							count: {
								types: t.length,
								values: e.length
							},
							value: {
								types: t,
								values: e
							}
						});
					const r = t.map((t => this._getCoder(Ce.from(t)))),
						n = new ke(r, "_"),
						i = this._getWriter();
					return n.encode(i, e), i.data
				}
				decode(t, e, r) {
					const n = t.map((t => this._getCoder(Ce.from(t))));
					return new ke(n, "_").decode(this._getReader(C(e), r))
				}
			}
			const Ye = new Qe,
				tr = new S($t);
			class er extends Ht {}
			class rr extends Ht {}
			class nr extends Ht {}
			class ir extends Ht {
				static isIndexed(t) {
					return !(!t || !t._isIndexed)
				}
			}
			const or = {
				"0x08c379a0": {
					signature: "Error(string)",
					name: "Error",
					inputs: ["string"],
					reason: !0
				},
				"0x4e487b71": {
					signature: "Panic(uint256)",
					name: "Panic",
					inputs: ["uint256"]
				}
			};

			function sr(t, e) {
				const r = new Error(`deferred error during ABI decoding triggered accessing ${t}`);
				return r.error = e, r
			}
			class ar {
				constructor(t) {
					tr.checkNew(new.target, ar);
					let e = [];
					e = "string" == typeof t ? JSON.parse(t) : t, jt(this, "fragments", e.map((t =>
							Fe.from(t))).filter((t => null != t))), jt(this, "_abiCoder", Lt(new
							.target, "getAbiCoder")()), jt(this, "functions", {}), jt(this,
							"errors", {}), jt(this, "events", {}), jt(this, "structs", {}), this
						.fragments.forEach((t => {
							let e = null;
							switch (t.type) {
								case "constructor":
									return this.deploy ? void tr.warn(
										"duplicate definition - constructor") : void jt(
										this, "deploy", t);
								case "function":
									e = this.functions;
									break;
								case "event":
									e = this.events;
									break;
								case "error":
									e = this.errors;
									break;
								default:
									return
							}
							let r = t.format();
							e[r] ? tr.warn("duplicate definition - " + r) : e[r] = t
						})), this.deploy || jt(this, "deploy", qe.from({
							payable: !1,
							type: "constructor"
						})), jt(this, "_isInterface", !0)
				}
				format(t) {
					t || (t = Te.full), t === Te.sighash && tr.throwArgumentError(
						"interface does not support formatting sighash", "format", t);
					const e = this.fragments.map((e => e.format(t)));
					return t === Te.json ? JSON.stringify(e.map((t => JSON.parse(t)))) : e
				}
				static getAbiCoder() {
					return Ye
				}
				static getAddress(t) {
					return _t(t)
				}
				static getSighash(t) {
					return q(ae(t.format()), 0, 4)
				}
				static getEventTopic(t) {
					return ae(t.format())
				}
				getFunction(t) {
					if (j(t)) {
						for (const e in this.functions)
							if (t === this.getSighash(e)) return this.functions[e];
						tr.throwArgumentError("no matching function", "sighash", t)
					}
					if (-1 === t.indexOf("(")) {
						const e = t.trim(),
							r = Object.keys(this.functions).filter((t => t.split("(")[0] === e));
						return 0 === r.length ? tr.throwArgumentError("no matching function",
							"name", e) : r.length > 1 && tr.throwArgumentError(
							"multiple matching functions", "name", e), this.functions[r[0]]
					}
					const e = this.functions[ze.fromString(t).format()];
					return e || tr.throwArgumentError("no matching function", "signature", t), e
				}
				getEvent(t) {
					if (j(t)) {
						const e = t.toLowerCase();
						for (const t in this.events)
							if (e === this.getEventTopic(t)) return this.events[t];
						tr.throwArgumentError("no matching event", "topichash", e)
					}
					if (-1 === t.indexOf("(")) {
						const e = t.trim(),
							r = Object.keys(this.events).filter((t => t.split("(")[0] === e));
						return 0 === r.length ? tr.throwArgumentError("no matching event", "name",
							e) : r.length > 1 && tr.throwArgumentError(
							"multiple matching events", "name", e), this.events[r[0]]
					}
					const e = this.events[je.fromString(t).format()];
					return e || tr.throwArgumentError("no matching event", "signature", t), e
				}
				getError(t) {
					if (j(t)) {
						const e = Lt(this.constructor, "getSighash");
						for (const r in this.errors) {
							if (t === e(this.errors[r])) return this.errors[r]
						}
						tr.throwArgumentError("no matching error", "sighash", t)
					}
					if (-1 === t.indexOf("(")) {
						const e = t.trim(),
							r = Object.keys(this.errors).filter((t => t.split("(")[0] === e));
						return 0 === r.length ? tr.throwArgumentError("no matching error", "name",
							e) : r.length > 1 && tr.throwArgumentError(
							"multiple matching errors", "name", e), this.errors[r[0]]
					}
					const e = this.errors[ze.fromString(t).format()];
					return e || tr.throwArgumentError("no matching error", "signature", t), e
				}
				getSighash(t) {
					if ("string" == typeof t) try {
						t = this.getFunction(t)
					} catch (e) {
						try {
							t = this.getError(t)
						} catch (t) {
							throw e
						}
					}
					return Lt(this.constructor, "getSighash")(t)
				}
				getEventTopic(t) {
					return "string" == typeof t && (t = this.getEvent(t)), Lt(this.constructor,
						"getEventTopic")(t)
				}
				_decodeParams(t, e) {
					return this._abiCoder.decode(t, e)
				}
				_encodeParams(t, e) {
					return this._abiCoder.encode(t, e)
				}
				encodeDeploy(t) {
					return this._encodeParams(this.deploy.inputs, t || [])
				}
				decodeErrorResult(t, e) {
					"string" == typeof t && (t = this.getError(t));
					const r = C(e);
					return U(r.slice(0, 4)) !== this.getSighash(t) && tr.throwArgumentError(
							`data signature does not match error ${t.name}.`, "data", U(r)), this
						._decodeParams(t.inputs, r.slice(4))
				}
				encodeErrorResult(t, e) {
					return "string" == typeof t && (t = this.getError(t)), U(B([this.getSighash(t),
						this._encodeParams(t.inputs, e || [])
					]))
				}
				decodeFunctionData(t, e) {
					"string" == typeof t && (t = this.getFunction(t));
					const r = C(e);
					return U(r.slice(0, 4)) !== this.getSighash(t) && tr.throwArgumentError(
							`data signature does not match function ${t.name}.`, "data", U(r)), this
						._decodeParams(t.inputs, r.slice(4))
				}
				encodeFunctionData(t, e) {
					return "string" == typeof t && (t = this.getFunction(t)), U(B([this.getSighash(
						t), this._encodeParams(t.inputs, e || [])]))
				}
				decodeFunctionResult(t, e) {
					"string" == typeof t && (t = this.getFunction(t));
					let r = C(e),
						n = null,
						i = null,
						o = null,
						s = null;
					switch (r.length % this._abiCoder._getWordSize()) {
						case 0:
							try {
								return this._abiCoder.decode(t.outputs, r)
							} catch (t) {}
							break;
						case 4: {
							const t = U(r.slice(0, 4)),
								e = or[t];
							if (e) i = this._abiCoder.decode(e.inputs, r.slice(4)), o = e.name, s =
								e.signature, e.reason && (n = i[0]);
							else try {
								const e = this.getError(t);
								i = this._abiCoder.decode(e.inputs, r.slice(4)), o = e.name, s =
									e.format()
							} catch (t) {}
							break
						}
					}
					return tr.throwError("call revert exception", S.errors.CALL_EXCEPTION, {
						method: t.format(),
						errorArgs: i,
						errorName: o,
						errorSignature: s,
						reason: n
					})
				}
				encodeFunctionResult(t, e) {
					return "string" == typeof t && (t = this.getFunction(t)), U(this._abiCoder
						.encode(t.outputs, e || []))
				}
				encodeFilterTopics(t, e) {
					"string" == typeof t && (t = this.getEvent(t)), e.length > t.inputs.length && tr
						.throwError("too many arguments for " + t.format(), S.errors
							.UNEXPECTED_ARGUMENT, {
								argument: "values",
								value: e
							});
					let r = [];
					t.anonymous || r.push(this.getEventTopic(t));
					const n = (t, e) => "string" === t.type ? ae(e) : "bytes" === t.type ? at(U(
						e)) : ("address" === t.type && this._abiCoder.encode(["address"], [e]), V(U(
							e), 32));
					for (e.forEach(((e, i) => {
							let o = t.inputs[i];
							o.indexed ? null == e ? r.push(null) : "array" === o.baseType ||
								"tuple" === o.baseType ? tr.throwArgumentError(
									"filtering with tuples or arrays not supported",
									"contract." + o.name, e) : Array.isArray(e) ? r.push(e
									.map((t => n(o, t)))) : r.push(n(o, e)) : null != e &&
								tr.throwArgumentError(
									"cannot filter non-indexed parameters; must be null",
									"contract." + o.name, e)
						})); r.length && null === r[r.length - 1];) r.pop();
					return r
				}
				encodeEventLog(t, e) {
					"string" == typeof t && (t = this.getEvent(t));
					const r = [],
						n = [],
						i = [];
					return t.anonymous || r.push(this.getEventTopic(t)), e.length !== t.inputs
						.length && tr.throwArgumentError("event arguments/values mismatch",
							"values", e), t.inputs.forEach(((t, o) => {
							const s = e[o];
							if (t.indexed)
								if ("string" === t.type) r.push(ae(s));
								else if ("bytes" === t.type) r.push(at(s));
							else {
								if ("tuple" === t.baseType || "array" === t.baseType)
								throw new Error("not implemented");
								r.push(this._abiCoder.encode([t.type], [s]))
							} else n.push(t), i.push(s)
						})), {
							data: this._abiCoder.encode(n, i),
							topics: r
						}
				}
				decodeEventLog(t, e, r) {
					if ("string" == typeof t && (t = this.getEvent(t)), null != r && !t.anonymous) {
						let e = this.getEventTopic(t);
						j(r[0], 32) && r[0].toLowerCase() === e || tr.throwError(
							"fragment/topic mismatch", S.errors.INVALID_ARGUMENT, {
								argument: "topics[0]",
								expected: e,
								value: r[0]
							}), r = r.slice(1)
					}
					let n = [],
						i = [],
						o = [];
					t.inputs.forEach(((t, e) => {
						t.indexed ? "string" === t.type || "bytes" === t.type ||
							"tuple" === t.baseType || "array" === t.baseType ? (n.push(
								Ce.fromObject({
									type: "bytes32",
									name: t.name
								})), o.push(!0)) : (n.push(t), o.push(!1)) : (i.push(t),
								o.push(!1))
					}));
					let s = null != r ? this._abiCoder.decode(n, B(r)) : null,
						a = this._abiCoder.decode(i, e, !0),
						u = [],
						c = 0,
						l = 0;
					t.inputs.forEach(((t, e) => {
						if (t.indexed)
							if (null == s) u[e] = new ir({
								_isIndexed: !0,
								hash: null
							});
							else if (o[e]) u[e] = new ir({
							_isIndexed: !0,
							hash: s[l++]
						});
						else try {
							u[e] = s[l++]
						} catch (t) {
							u[e] = t
						} else try {
							u[e] = a[c++]
						} catch (t) {
							u[e] = t
						}
						if (t.name && null == u[t.name]) {
							const r = u[e];
							r instanceof Error ? Object.defineProperty(u, t.name, {
								enumerable: !0,
								get: () => {
									throw sr(
										`property ${JSON.stringify(t.name)}`,
										r)
								}
							}) : u[t.name] = r
						}
					}));
					for (let t = 0; t < u.length; t++) {
						const e = u[t];
						e instanceof Error && Object.defineProperty(u, t, {
							enumerable: !0,
							get: () => {
								throw sr(`index ${t}`, e)
							}
						})
					}
					return Object.freeze(u)
				}
				parseTransaction(t) {
					let e = this.getFunction(t.data.substring(0, 10).toLowerCase());
					return e ? new rr({
						args: this._abiCoder.decode(e.inputs, "0x" + t.data.substring(10)),
						functionFragment: e,
						name: e.name,
						signature: e.format(),
						sighash: this.getSighash(e),
						value: tt.from(t.value || "0")
					}) : null
				}
				parseLog(t) {
					let e = this.getEvent(t.topics[0]);
					return !e || e.anonymous ? null : new er({
						eventFragment: e,
						name: e.name,
						signature: e.format(),
						topic: this.getEventTopic(e),
						args: this.decodeEventLog(e, t.data, t.topics)
					})
				}
				parseError(t) {
					const e = U(t);
					let r = this.getError(e.substring(0, 10).toLowerCase());
					return r ? new nr({
						args: this._abiCoder.decode(r.inputs, "0x" + e.substring(10)),
						errorFragment: r,
						name: r.name,
						signature: r.format(),
						sighash: this.getSighash(r)
					}) : null
				}
				static isInterface(t) {
					return !(!t || !t._isInterface)
				}
			}
			var ur = function(t, e, r, n) {
				return new(r || (r = Promise))((function(i, o) {
					function s(t) {
						try {
							u(n.next(t))
						} catch (t) {
							o(t)
						}
					}

					function a(t) {
						try {
							u(n.throw(t))
						} catch (t) {
							o(t)
						}
					}

					function u(t) {
						var e;
						t.done ? i(t.value) : (e = t.value, e instanceof r ? e : new r((
							function(t) {
								t(e)
							}))).then(s, a)
					}
					u((n = n.apply(t, e || [])).next())
				}))
			};
			const cr = new S("abstract-provider/5.6.0");
			class lr extends Ht {
				static isForkEvent(t) {
					return !(!t || !t._isForkEvent)
				}
			}
			class hr {
				constructor() {
					cr.checkAbstract(new.target, hr), jt(this, "_isProvider", !0)
				}
				getFeeData() {
					return ur(this, void 0, void 0, (function*() {
						const {
							block: t,
							gasPrice: e
						} = yield Ut({
							block: this.getBlock("latest"),
							gasPrice: this.getGasPrice().catch((t => null))
						});
						let r = null,
							n = null;
						return t && t.baseFeePerGas && (n = tt.from("1500000000"), r = t
							.baseFeePerGas.mul(2).add(n)), {
							maxFeePerGas: r,
							maxPriorityFeePerGas: n,
							gasPrice: e
						}
					}))
				}
				addListener(t, e) {
					return this.on(t, e)
				}
				removeListener(t, e) {
					return this.off(t, e)
				}
				static isProvider(t) {
					return !(!t || !t._isProvider)
				}
			}
			var fr = function(t, e, r, n) {
				return new(r || (r = Promise))((function(i, o) {
					function s(t) {
						try {
							u(n.next(t))
						} catch (t) {
							o(t)
						}
					}

					function a(t) {
						try {
							u(n.throw(t))
						} catch (t) {
							o(t)
						}
					}

					function u(t) {
						var e;
						t.done ? i(t.value) : (e = t.value, e instanceof r ? e : new r((
							function(t) {
								t(e)
							}))).then(s, a)
					}
					u((n = n.apply(t, e || [])).next())
				}))
			};
			const dr = new S("abstract-signer/5.6.0"),
				pr = ["accessList", "ccipReadEnabled", "chainId", "customData", "data", "from",
					"gasLimit", "gasPrice", "maxFeePerGas", "maxPriorityFeePerGas", "nonce", "to",
					"type", "value"
				],
				mr = [S.errors.INSUFFICIENT_FUNDS, S.errors.NONCE_EXPIRED, S.errors
					.REPLACEMENT_UNDERPRICED
				];
			class gr {
				constructor() {
					dr.checkAbstract(new.target, gr), jt(this, "_isSigner", !0)
				}
				getBalance(t) {
					return fr(this, void 0, void 0, (function*() {
						return this._checkProvider("getBalance"), yield this.provider
							.getBalance(this.getAddress(), t)
					}))
				}
				getTransactionCount(t) {
					return fr(this, void 0, void 0, (function*() {
						return this._checkProvider("getTransactionCount"), yield this
							.provider.getTransactionCount(this.getAddress(), t)
					}))
				}
				estimateGas(t) {
					return fr(this, void 0, void 0, (function*() {
						this._checkProvider("estimateGas");
						const e = yield Ut(this.checkTransaction(t));
						return yield this.provider.estimateGas(e)
					}))
				}
				call(t, e) {
					return fr(this, void 0, void 0, (function*() {
						this._checkProvider("call");
						const r = yield Ut(this.checkTransaction(t));
						return yield this.provider.call(r, e)
					}))
				}
				sendTransaction(t) {
					return fr(this, void 0, void 0, (function*() {
						this._checkProvider("sendTransaction");
						const e = yield this.populateTransaction(t), r = yield this
							.signTransaction(e);
						return yield this.provider.sendTransaction(r)
					}))
				}
				getChainId() {
					return fr(this, void 0, void 0, (function*() {
						this._checkProvider("getChainId");
						return (yield this.provider.getNetwork()).chainId
					}))
				}
				getGasPrice() {
					return fr(this, void 0, void 0, (function*() {
						return this._checkProvider("getGasPrice"), yield this.provider
							.getGasPrice()
					}))
				}
				getFeeData() {
					return fr(this, void 0, void 0, (function*() {
						return this._checkProvider("getFeeData"), yield this.provider
							.getFeeData()
					}))
				}
				resolveName(t) {
					return fr(this, void 0, void 0, (function*() {
						return this._checkProvider("resolveName"), yield this.provider
							.resolveName(t)
					}))
				}
				checkTransaction(t) {
					for (const e in t) - 1 === pr.indexOf(e) && dr.throwArgumentError(
						"invalid transaction key: " + e, "transaction", t);
					const e = Dt(t);
					return null == e.from ? e.from = this.getAddress() : e.from = Promise.all([
						Promise.resolve(e.from), this.getAddress()
					]).then((e => (e[0].toLowerCase() !== e[1].toLowerCase() && dr
						.throwArgumentError("from address mismatch", "transaction", t),
						e[0]))), e
				}
				populateTransaction(t) {
					return fr(this, void 0, void 0, (function*() {
						const e = yield Ut(this.checkTransaction(t));
						null != e.to && (e.to = Promise.resolve(e.to).then((t => fr(
							this, void 0, void 0, (function*() {
								if (null == t) return null;
								const e = yield this.resolveName(t);
								return null == e && dr
									.throwArgumentError(
										"provided ENS name resolves to null",
										"tx.to", t), e
							})))), e.to.catch((t => {})));
						const r = null != e.maxFeePerGas || null != e
							.maxPriorityFeePerGas;
						if (null == e.gasPrice || 2 !== e.type && !r ? 0 !== e.type &&
							1 !== e.type || !r || dr.throwArgumentError(
								"pre-eip-1559 transaction do not support maxFeePerGas/maxPriorityFeePerGas",
								"transaction", t) : dr.throwArgumentError(
								"eip-1559 transaction do not support gasPrice",
								"transaction", t), 2 !== e.type && null != e.type ||
							null == e.maxFeePerGas || null == e.maxPriorityFeePerGas)
							if (0 === e.type || 1 === e.type) null == e.gasPrice && (e
								.gasPrice = this.getGasPrice());
							else {
								const t = yield this.getFeeData();
								if (null == e.type)
									if (null != t.maxFeePerGas && null != t
										.maxPriorityFeePerGas)
										if (e.type = 2, null != e.gasPrice) {
											const t = e.gasPrice;
											delete e.gasPrice, e.maxFeePerGas = t, e
												.maxPriorityFeePerGas = t
										} else null == e.maxFeePerGas && (e
												.maxFeePerGas = t.maxFeePerGas), null ==
											e.maxPriorityFeePerGas && (e
												.maxPriorityFeePerGas = t
												.maxPriorityFeePerGas);
								else null != t.gasPrice ? (r && dr.throwError(
									"network does not support EIP-1559", S
									.errors.UNSUPPORTED_OPERATION, {
										operation: "populateTransaction"
									}), null == e.gasPrice && (e.gasPrice = t
									.gasPrice), e.type = 0) : dr.throwError(
									"failed to get consistent fee data", S.errors
									.UNSUPPORTED_OPERATION, {
										operation: "signer.getFeeData"
									});
								else 2 === e.type && (null == e.maxFeePerGas && (e
										.maxFeePerGas = t.maxFeePerGas), null == e
									.maxPriorityFeePerGas && (e
										.maxPriorityFeePerGas = t
										.maxPriorityFeePerGas))
							}
						else e.type = 2;
						return null == e.nonce && (e.nonce = this.getTransactionCount(
								"pending")), null == e.gasLimit && (e.gasLimit = this
								.estimateGas(e).catch((t => {
									if (mr.indexOf(t.code) >= 0) throw t;
									return dr.throwError(
										"cannot estimate gas; transaction may fail or may require manual gas limit",
										S.errors.UNPREDICTABLE_GAS_LIMIT, {
											error: t,
											tx: e
										})
								}))), null == e.chainId ? e.chainId = this
						.getChainId() : e.chainId = Promise.all([Promise.resolve(e
								.chainId), this.getChainId()]).then((e => (0 !== e[1] &&
								e[0] !== e[1] && dr.throwArgumentError(
									"chainId address mismatch", "transaction", t
									), e[0]))), yield Ut(e)
					}))
				}
				_checkProvider(t) {
					this.provider || dr.throwError("missing provider", S.errors
						.UNSUPPORTED_OPERATION, {
							operation: t || "_checkProvider"
						})
				}
				static isSigner(t) {
					return !(!t || !t._isSigner)
				}
			}
			class yr extends gr {
				constructor(t, e) {
					dr.checkNew(new.target, yr), super(), jt(this, "address", t), jt(this,
						"provider", e || null)
				}
				getAddress() {
					return Promise.resolve(this.address)
				}
				_fail(t, e) {
					return Promise.resolve().then((() => {
						dr.throwError(t, S.errors.UNSUPPORTED_OPERATION, {
							operation: e
						})
					}))
				}
				signMessage(t) {
					return this._fail("VoidSigner cannot sign messages", "signMessage")
				}
				signTransaction(t) {
					return this._fail("VoidSigner cannot sign transactions", "signTransaction")
				}
				_signTypedData(t, e, r) {
					return this._fail("VoidSigner cannot sign typed data", "signTypedData")
				}
				connect(t) {
					return new yr(this.address, t)
				}
			}
			var vr = r(3715),
				br = r.n(vr);
			"undefined" != typeof globalThis ? globalThis : "undefined" != typeof window ? window :
				void 0 !== r.g ? r.g : "undefined" != typeof self && self;

			function wr(t, e, r) {
				return r = {
					path: e,
					exports: {},
					require: function(t, e) {
						return function() {
							throw new Error(
								"Dynamic requires are not currently supported by @rollup/plugin-commonjs"
								)
						}(null == e && r.path)
					}
				}, t(r, r.exports), r.exports
			}
			var Er = _r;

			function _r(t, e) {
				if (!t) throw new Error(e || "Assertion failed")
			}
			_r.equal = function(t, e, r) {
				if (t != e) throw new Error(r || "Assertion failed: " + t + " != " + e)
			};
			var xr = wr((function(t, e) {
					var r = e;

					function n(t) {
						return 1 === t.length ? "0" + t : t
					}

					function i(t) {
						for (var e = "", r = 0; r < t.length; r++) e += n(t[r].toString(16));
						return e
					}
					r.toArray = function(t, e) {
						if (Array.isArray(t)) return t.slice();
						if (!t) return [];
						var r = [];
						if ("string" != typeof t) {
							for (var n = 0; n < t.length; n++) r[n] = 0 | t[n];
							return r
						}
						if ("hex" === e) {
							(t = t.replace(/[^a-z0-9]+/gi, "")).length % 2 != 0 && (t =
								"0" + t);
							for (n = 0; n < t.length; n += 2) r.push(parseInt(t[n] + t[n +
								1], 16))
						} else
							for (n = 0; n < t.length; n++) {
								var i = t.charCodeAt(n),
									o = i >> 8,
									s = 255 & i;
								o ? r.push(o, s) : r.push(s)
							}
						return r
					}, r.zero2 = n, r.toHex = i, r.encode = function(t, e) {
						return "hex" === e ? i(t) : t
					}
				})),
				Ar = wr((function(t, e) {
					var r = e;
					r.assert = Er, r.toArray = xr.toArray, r.zero2 = xr.zero2, r.toHex = xr
						.toHex, r.encode = xr.encode, r.getNAF = function(t, e, r) {
							var n = new Array(Math.max(t.bitLength(), r) + 1);
							n.fill(0);
							for (var i = 1 << e + 1, o = t.clone(), s = 0; s < n.length; s++) {
								var a, u = o.andln(i - 1);
								o.isOdd() ? (a = u > (i >> 1) - 1 ? (i >> 1) - u : u, o.isubn(
									a)) : a = 0, n[s] = a, o.iushrn(1)
							}
							return n
						}, r.getJSF = function(t, e) {
							var r = [
								[],
								[]
							];
							t = t.clone(), e = e.clone();
							for (var n, i = 0, o = 0; t.cmpn(-i) > 0 || e.cmpn(-o) > 0;) {
								var s, a, u = t.andln(3) + i & 3,
									c = e.andln(3) + o & 3;
								3 === u && (u = -1), 3 === c && (c = -1), s = 0 == (1 & u) ? 0 :
									3 !== (n = t.andln(7) + i & 7) && 5 !== n || 2 !== c ? u : -
									u, r[0].push(s), a = 0 == (1 & c) ? 0 : 3 !== (n = e.andln(
										7) + o & 7) && 5 !== n || 2 !== u ? c : -c, r[1].push(
									a), 2 * i === s + 1 && (i = 1 - i), 2 * o === a + 1 && (o =
										1 - o), t.iushrn(1), e.iushrn(1)
							}
							return r
						}, r.cachedProperty = function(t, e, r) {
							var n = "_" + e;
							t.prototype[e] = function() {
								return void 0 !== this[n] ? this[n] : this[n] = r.call(this)
							}
						}, r.parseBytes = function(t) {
							return "string" == typeof t ? r.toArray(t, "hex") : t
						}, r.intFromLE = function(t) {
							return new(W())(t, "hex", "le")
						}
				})),
				kr = Ar.getNAF,
				Nr = Ar.getJSF,
				Sr = Ar.assert;

			function Pr(t, e) {
				this.type = t, this.p = new(W())(e.p, 16), this.red = e.prime ? W().red(e.prime) : W()
					.mont(this.p), this.zero = new(W())(0).toRed(this.red), this.one = new(W())(1)
					.toRed(this.red), this.two = new(W())(2).toRed(this.red), this.n = e.n && new(W())(e
						.n, 16), this.g = e.g && this.pointFromJSON(e.g, e.gRed), this._wnafT1 =
					new Array(4), this._wnafT2 = new Array(4), this._wnafT3 = new Array(4), this
					._wnafT4 = new Array(4), this._bitLength = this.n ? this.n.bitLength() : 0;
				var r = this.n && this.p.div(this.n);
				!r || r.cmpn(100) > 0 ? this.redN = null : (this._maxwellTrick = !0, this.redN = this.n
					.toRed(this.red))
			}
			var Mr = Pr;

			function Or(t, e) {
				this.curve = t, this.type = e, this.precomputed = null
			}
			Pr.prototype.point = function() {
				throw new Error("Not implemented")
			}, Pr.prototype.validate = function() {
				throw new Error("Not implemented")
			}, Pr.prototype._fixedNafMul = function(t, e) {
				Sr(t.precomputed);
				var r = t._getDoubles(),
					n = kr(e, 1, this._bitLength),
					i = (1 << r.step + 1) - (r.step % 2 == 0 ? 2 : 1);
				i /= 3;
				var o, s, a = [];
				for (o = 0; o < n.length; o += r.step) {
					s = 0;
					for (var u = o + r.step - 1; u >= o; u--) s = (s << 1) + n[u];
					a.push(s)
				}
				for (var c = this.jpoint(null, null, null), l = this.jpoint(null, null, null), h =
					i; h > 0; h--) {
					for (o = 0; o < a.length; o++)(s = a[o]) === h ? l = l.mixedAdd(r.points[o]) :
						s === -h && (l = l.mixedAdd(r.points[o].neg()));
					c = c.add(l)
				}
				return c.toP()
			}, Pr.prototype._wnafMul = function(t, e) {
				var r = 4,
					n = t._getNAFPoints(r);
				r = n.wnd;
				for (var i = n.points, o = kr(e, r, this._bitLength), s = this.jpoint(null, null,
						null), a = o.length - 1; a >= 0; a--) {
					for (var u = 0; a >= 0 && 0 === o[a]; a--) u++;
					if (a >= 0 && u++, s = s.dblp(u), a < 0) break;
					var c = o[a];
					Sr(0 !== c), s = "affine" === t.type ? c > 0 ? s.mixedAdd(i[c - 1 >> 1]) : s
						.mixedAdd(i[-c - 1 >> 1].neg()) : c > 0 ? s.add(i[c - 1 >> 1]) : s.add(i[-
							c - 1 >> 1].neg())
				}
				return "affine" === t.type ? s.toP() : s
			}, Pr.prototype._wnafMulAdd = function(t, e, r, n, i) {
				var o, s, a, u = this._wnafT1,
					c = this._wnafT2,
					l = this._wnafT3,
					h = 0;
				for (o = 0; o < n; o++) {
					var f = (a = e[o])._getNAFPoints(t);
					u[o] = f.wnd, c[o] = f.points
				}
				for (o = n - 1; o >= 1; o -= 2) {
					var d = o - 1,
						p = o;
					if (1 === u[d] && 1 === u[p]) {
						var m = [e[d], null, null, e[p]];
						0 === e[d].y.cmp(e[p].y) ? (m[1] = e[d].add(e[p]), m[2] = e[d].toJ()
							.mixedAdd(e[p].neg())) : 0 === e[d].y.cmp(e[p].y.redNeg()) ? (m[1] =
							e[d].toJ().mixedAdd(e[p]), m[2] = e[d].add(e[p].neg())) : (m[1] = e[
							d].toJ().mixedAdd(e[p]), m[2] = e[d].toJ().mixedAdd(e[p].neg()));
						var g = [-3, -1, -5, -7, 0, 7, 5, 1, 3],
							y = Nr(r[d], r[p]);
						for (h = Math.max(y[0].length, h), l[d] = new Array(h), l[p] = new Array(h),
							s = 0; s < h; s++) {
							var v = 0 | y[0][s],
								b = 0 | y[1][s];
							l[d][s] = g[3 * (v + 1) + (b + 1)], l[p][s] = 0, c[d] = m
						}
					} else l[d] = kr(r[d], u[d], this._bitLength), l[p] = kr(r[p], u[p], this
						._bitLength), h = Math.max(l[d].length, h), h = Math.max(l[p].length, h)
				}
				var w = this.jpoint(null, null, null),
					E = this._wnafT4;
				for (o = h; o >= 0; o--) {
					for (var _ = 0; o >= 0;) {
						var x = !0;
						for (s = 0; s < n; s++) E[s] = 0 | l[s][o], 0 !== E[s] && (x = !1);
						if (!x) break;
						_++, o--
					}
					if (o >= 0 && _++, w = w.dblp(_), o < 0) break;
					for (s = 0; s < n; s++) {
						var A = E[s];
						0 !== A && (A > 0 ? a = c[s][A - 1 >> 1] : A < 0 && (a = c[s][-A - 1 >> 1]
							.neg()), w = "affine" === a.type ? w.mixedAdd(a) : w.add(a))
					}
				}
				for (o = 0; o < n; o++) c[o] = null;
				return i ? w : w.toP()
			}, Pr.BasePoint = Or, Or.prototype.eq = function() {
				throw new Error("Not implemented")
			}, Or.prototype.validate = function() {
				return this.curve.validate(this)
			}, Pr.prototype.decodePoint = function(t, e) {
				t = Ar.toArray(t, e);
				var r = this.p.byteLength();
				if ((4 === t[0] || 6 === t[0] || 7 === t[0]) && t.length - 1 == 2 * r) return 6 ===
					t[0] ? Sr(t[t.length - 1] % 2 == 0) : 7 === t[0] && Sr(t[t.length - 1] %
						2 == 1), this.point(t.slice(1, 1 + r), t.slice(1 + r, 1 + 2 * r));
				if ((2 === t[0] || 3 === t[0]) && t.length - 1 === r) return this.pointFromX(t
					.slice(1, 1 + r), 3 === t[0]);
				throw new Error("Unknown point format")
			}, Or.prototype.encodeCompressed = function(t) {
				return this.encode(t, !0)
			}, Or.prototype._encode = function(t) {
				var e = this.curve.p.byteLength(),
					r = this.getX().toArray("be", e);
				return t ? [this.getY().isEven() ? 2 : 3].concat(r) : [4].concat(r, this.getY()
					.toArray("be", e))
			}, Or.prototype.encode = function(t, e) {
				return Ar.encode(this._encode(e), t)
			}, Or.prototype.precompute = function(t) {
				if (this.precomputed) return this;
				var e = {
					doubles: null,
					naf: null,
					beta: null
				};
				return e.naf = this._getNAFPoints(8), e.doubles = this._getDoubles(4, t), e.beta =
					this._getBeta(), this.precomputed = e, this
			}, Or.prototype._hasDoubles = function(t) {
				if (!this.precomputed) return !1;
				var e = this.precomputed.doubles;
				return !!e && e.points.length >= Math.ceil((t.bitLength() + 1) / e.step)
			}, Or.prototype._getDoubles = function(t, e) {
				if (this.precomputed && this.precomputed.doubles) return this.precomputed.doubles;
				for (var r = [this], n = this, i = 0; i < e; i += t) {
					for (var o = 0; o < t; o++) n = n.dbl();
					r.push(n)
				}
				return {
					step: t,
					points: r
				}
			}, Or.prototype._getNAFPoints = function(t) {
				if (this.precomputed && this.precomputed.naf) return this.precomputed.naf;
				for (var e = [this], r = (1 << t) - 1, n = 1 === r ? null : this.dbl(), i = 1; i <
					r; i++) e[i] = e[i - 1].add(n);
				return {
					wnd: t,
					points: e
				}
			}, Or.prototype._getBeta = function() {
				return null
			}, Or.prototype.dblp = function(t) {
				for (var e = this, r = 0; r < t; r++) e = e.dbl();
				return e
			};
			var Ir = wr((function(t) {
					"function" == typeof Object.create ? t.exports = function(t, e) {
						e && (t.super_ = e, t.prototype = Object.create(e.prototype, {
							constructor: {
								value: t,
								enumerable: !1,
								writable: !0,
								configurable: !0
							}
						}))
					} : t.exports = function(t, e) {
						if (e) {
							t.super_ = e;
							var r = function() {};
							r.prototype = e.prototype, t.prototype = new r, t.prototype
								.constructor = t
						}
					}
				})),
				Tr = Ar.assert;

			function Rr(t) {
				Mr.call(this, "short", t), this.a = new(W())(t.a, 16).toRed(this.red), this.b = new(W())
					(t.b, 16).toRed(this.red), this.tinv = this.two.redInvm(), this.zeroA = 0 === this.a
					.fromRed().cmpn(0), this.threeA = 0 === this.a.fromRed().sub(this.p).cmpn(-3), this
					.endo = this._getEndomorphism(t), this._endoWnafT1 = new Array(4), this
					._endoWnafT2 = new Array(4)
			}
			Ir(Rr, Mr);
			var Cr = Rr;

			function Br(t, e, r, n) {
				Mr.BasePoint.call(this, t, "affine"), null === e && null === r ? (this.x = null, this
					.y = null, this.inf = !0) : (this.x = new(W())(e, 16), this.y = new(W())(r, 16),
					n && (this.x.forceRed(this.curve.red), this.y.forceRed(this.curve.red)), this.x
					.red || (this.x = this.x.toRed(this.curve.red)), this.y.red || (this.y = this.y
						.toRed(this.curve.red)), this.inf = !1)
			}

			function Fr(t, e, r, n) {
				Mr.BasePoint.call(this, t, "jacobian"), null === e && null === r && null === n ? (this
						.x = this.curve.one, this.y = this.curve.one, this.z = new(W())(0)) : (this.x =
						new(W())(e, 16), this.y = new(W())(r, 16), this.z = new(W())(n, 16)), this.x
					.red || (this.x = this.x.toRed(this.curve.red)), this.y.red || (this.y = this.y
						.toRed(this.curve.red)), this.z.red || (this.z = this.z.toRed(this.curve.red)),
					this.zOne = this.z === this.curve.one
			}
			Rr.prototype._getEndomorphism = function(t) {
				if (this.zeroA && this.g && this.n && 1 === this.p.modn(3)) {
					var e, r;
					if (t.beta) e = new(W())(t.beta, 16).toRed(this.red);
					else {
						var n = this._getEndoRoots(this.p);
						e = (e = n[0].cmp(n[1]) < 0 ? n[0] : n[1]).toRed(this.red)
					}
					if (t.lambda) r = new(W())(t.lambda, 16);
					else {
						var i = this._getEndoRoots(this.n);
						0 === this.g.mul(i[0]).x.cmp(this.g.x.redMul(e)) ? r = i[0] : (r = i[1], Tr(
							0 === this.g.mul(r).x.cmp(this.g.x.redMul(e))))
					}
					return {
						beta: e,
						lambda: r,
						basis: t.basis ? t.basis.map((function(t) {
							return {
								a: new(W())(t.a, 16),
								b: new(W())(t.b, 16)
							}
						})) : this._getEndoBasis(r)
					}
				}
			}, Rr.prototype._getEndoRoots = function(t) {
				var e = t === this.p ? this.red : W().mont(t),
					r = new(W())(2).toRed(e).redInvm(),
					n = r.redNeg(),
					i = new(W())(3).toRed(e).redNeg().redSqrt().redMul(r);
				return [n.redAdd(i).fromRed(), n.redSub(i).fromRed()]
			}, Rr.prototype._getEndoBasis = function(t) {
				for (var e, r, n, i, o, s, a, u, c, l = this.n.ushrn(Math.floor(this.n.bitLength() /
							2)), h = t, f = this.n.clone(), d = new(W())(1), p = new(W())(0), m =
						new(W())(0), g = new(W())(1), y = 0; 0 !== h.cmpn(0);) {
					var v = f.div(h);
					u = f.sub(v.mul(h)), c = m.sub(v.mul(d));
					var b = g.sub(v.mul(p));
					if (!n && u.cmp(l) < 0) e = a.neg(), r = d, n = u.neg(), i = c;
					else if (n && 2 == ++y) break;
					a = u, f = h, h = u, m = d, d = c, g = p, p = b
				}
				o = u.neg(), s = c;
				var w = n.sqr().add(i.sqr());
				return o.sqr().add(s.sqr()).cmp(w) >= 0 && (o = e, s = r), n.negative && (n = n
				.neg(), i = i.neg()), o.negative && (o = o.neg(), s = s.neg()), [{
					a: n,
					b: i
				}, {
					a: o,
					b: s
				}]
			}, Rr.prototype._endoSplit = function(t) {
				var e = this.endo.basis,
					r = e[0],
					n = e[1],
					i = n.b.mul(t).divRound(this.n),
					o = r.b.neg().mul(t).divRound(this.n),
					s = i.mul(r.a),
					a = o.mul(n.a),
					u = i.mul(r.b),
					c = o.mul(n.b);
				return {
					k1: t.sub(s).sub(a),
					k2: u.add(c).neg()
				}
			}, Rr.prototype.pointFromX = function(t, e) {
				(t = new(W())(t, 16)).red || (t = t.toRed(this.red));
				var r = t.redSqr().redMul(t).redIAdd(t.redMul(this.a)).redIAdd(this.b),
					n = r.redSqrt();
				if (0 !== n.redSqr().redSub(r).cmp(this.zero)) throw new Error("invalid point");
				var i = n.fromRed().isOdd();
				return (e && !i || !e && i) && (n = n.redNeg()), this.point(t, n)
			}, Rr.prototype.validate = function(t) {
				if (t.inf) return !0;
				var e = t.x,
					r = t.y,
					n = this.a.redMul(e),
					i = e.redSqr().redMul(e).redIAdd(n).redIAdd(this.b);
				return 0 === r.redSqr().redISub(i).cmpn(0)
			}, Rr.prototype._endoWnafMulAdd = function(t, e, r) {
				for (var n = this._endoWnafT1, i = this._endoWnafT2, o = 0; o < t.length; o++) {
					var s = this._endoSplit(e[o]),
						a = t[o],
						u = a._getBeta();
					s.k1.negative && (s.k1.ineg(), a = a.neg(!0)), s.k2.negative && (s.k2.ineg(),
						u = u.neg(!0)), n[2 * o] = a, n[2 * o + 1] = u, i[2 * o] = s.k1, i[2 *
						o + 1] = s.k2
				}
				for (var c = this._wnafMulAdd(1, n, i, 2 * o, r), l = 0; l < 2 * o; l++) n[l] =
					null, i[l] = null;
				return c
			}, Ir(Br, Mr.BasePoint), Rr.prototype.point = function(t, e, r) {
				return new Br(this, t, e, r)
			}, Rr.prototype.pointFromJSON = function(t, e) {
				return Br.fromJSON(this, t, e)
			}, Br.prototype._getBeta = function() {
				if (this.curve.endo) {
					var t = this.precomputed;
					if (t && t.beta) return t.beta;
					var e = this.curve.point(this.x.redMul(this.curve.endo.beta), this.y);
					if (t) {
						var r = this.curve,
							n = function(t) {
								return r.point(t.x.redMul(r.endo.beta), t.y)
							};
						t.beta = e, e.precomputed = {
							beta: null,
							naf: t.naf && {
								wnd: t.naf.wnd,
								points: t.naf.points.map(n)
							},
							doubles: t.doubles && {
								step: t.doubles.step,
								points: t.doubles.points.map(n)
							}
						}
					}
					return e
				}
			}, Br.prototype.toJSON = function() {
				return this.precomputed ? [this.x, this.y, this.precomputed && {
					doubles: this.precomputed.doubles && {
						step: this.precomputed.doubles.step,
						points: this.precomputed.doubles.points.slice(1)
					},
					naf: this.precomputed.naf && {
						wnd: this.precomputed.naf.wnd,
						points: this.precomputed.naf.points.slice(1)
					}
				}] : [this.x, this.y]
			}, Br.fromJSON = function(t, e, r) {
				"string" == typeof e && (e = JSON.parse(e));
				var n = t.point(e[0], e[1], r);
				if (!e[2]) return n;

				function i(e) {
					return t.point(e[0], e[1], r)
				}
				var o = e[2];
				return n.precomputed = {
					beta: null,
					doubles: o.doubles && {
						step: o.doubles.step,
						points: [n].concat(o.doubles.points.map(i))
					},
					naf: o.naf && {
						wnd: o.naf.wnd,
						points: [n].concat(o.naf.points.map(i))
					}
				}, n
			}, Br.prototype.inspect = function() {
				return this.isInfinity() ? "<EC Point Infinity>" : "<EC Point x: " + this.x
				.fromRed().toString(16, 2) + " y: " + this.y.fromRed().toString(16, 2) + ">"
			}, Br.prototype.isInfinity = function() {
				return this.inf
			}, Br.prototype.add = function(t) {
				if (this.inf) return t;
				if (t.inf) return this;
				if (this.eq(t)) return this.dbl();
				if (this.neg().eq(t)) return this.curve.point(null, null);
				if (0 === this.x.cmp(t.x)) return this.curve.point(null, null);
				var e = this.y.redSub(t.y);
				0 !== e.cmpn(0) && (e = e.redMul(this.x.redSub(t.x).redInvm()));
				var r = e.redSqr().redISub(this.x).redISub(t.x),
					n = e.redMul(this.x.redSub(r)).redISub(this.y);
				return this.curve.point(r, n)
			}, Br.prototype.dbl = function() {
				if (this.inf) return this;
				var t = this.y.redAdd(this.y);
				if (0 === t.cmpn(0)) return this.curve.point(null, null);
				var e = this.curve.a,
					r = this.x.redSqr(),
					n = t.redInvm(),
					i = r.redAdd(r).redIAdd(r).redIAdd(e).redMul(n),
					o = i.redSqr().redISub(this.x.redAdd(this.x)),
					s = i.redMul(this.x.redSub(o)).redISub(this.y);
				return this.curve.point(o, s)
			}, Br.prototype.getX = function() {
				return this.x.fromRed()
			}, Br.prototype.getY = function() {
				return this.y.fromRed()
			}, Br.prototype.mul = function(t) {
				return t = new(W())(t, 16), this.isInfinity() ? this : this._hasDoubles(t) ? this
					.curve._fixedNafMul(this, t) : this.curve.endo ? this.curve._endoWnafMulAdd([
						this
					], [t]) : this.curve._wnafMul(this, t)
			}, Br.prototype.mulAdd = function(t, e, r) {
				var n = [this, e],
					i = [t, r];
				return this.curve.endo ? this.curve._endoWnafMulAdd(n, i) : this.curve._wnafMulAdd(
					1, n, i, 2)
			}, Br.prototype.jmulAdd = function(t, e, r) {
				var n = [this, e],
					i = [t, r];
				return this.curve.endo ? this.curve._endoWnafMulAdd(n, i, !0) : this.curve
					._wnafMulAdd(1, n, i, 2, !0)
			}, Br.prototype.eq = function(t) {
				return this === t || this.inf === t.inf && (this.inf || 0 === this.x.cmp(t.x) &&
					0 === this.y.cmp(t.y))
			}, Br.prototype.neg = function(t) {
				if (this.inf) return this;
				var e = this.curve.point(this.x, this.y.redNeg());
				if (t && this.precomputed) {
					var r = this.precomputed,
						n = function(t) {
							return t.neg()
						};
					e.precomputed = {
						naf: r.naf && {
							wnd: r.naf.wnd,
							points: r.naf.points.map(n)
						},
						doubles: r.doubles && {
							step: r.doubles.step,
							points: r.doubles.points.map(n)
						}
					}
				}
				return e
			}, Br.prototype.toJ = function() {
				return this.inf ? this.curve.jpoint(null, null, null) : this.curve.jpoint(this.x,
					this.y, this.curve.one)
			}, Ir(Fr, Mr.BasePoint), Rr.prototype.jpoint = function(t, e, r) {
				return new Fr(this, t, e, r)
			}, Fr.prototype.toP = function() {
				if (this.isInfinity()) return this.curve.point(null, null);
				var t = this.z.redInvm(),
					e = t.redSqr(),
					r = this.x.redMul(e),
					n = this.y.redMul(e).redMul(t);
				return this.curve.point(r, n)
			}, Fr.prototype.neg = function() {
				return this.curve.jpoint(this.x, this.y.redNeg(), this.z)
			}, Fr.prototype.add = function(t) {
				if (this.isInfinity()) return t;
				if (t.isInfinity()) return this;
				var e = t.z.redSqr(),
					r = this.z.redSqr(),
					n = this.x.redMul(e),
					i = t.x.redMul(r),
					o = this.y.redMul(e.redMul(t.z)),
					s = t.y.redMul(r.redMul(this.z)),
					a = n.redSub(i),
					u = o.redSub(s);
				if (0 === a.cmpn(0)) return 0 !== u.cmpn(0) ? this.curve.jpoint(null, null, null) :
					this.dbl();
				var c = a.redSqr(),
					l = c.redMul(a),
					h = n.redMul(c),
					f = u.redSqr().redIAdd(l).redISub(h).redISub(h),
					d = u.redMul(h.redISub(f)).redISub(o.redMul(l)),
					p = this.z.redMul(t.z).redMul(a);
				return this.curve.jpoint(f, d, p)
			}, Fr.prototype.mixedAdd = function(t) {
				if (this.isInfinity()) return t.toJ();
				if (t.isInfinity()) return this;
				var e = this.z.redSqr(),
					r = this.x,
					n = t.x.redMul(e),
					i = this.y,
					o = t.y.redMul(e).redMul(this.z),
					s = r.redSub(n),
					a = i.redSub(o);
				if (0 === s.cmpn(0)) return 0 !== a.cmpn(0) ? this.curve.jpoint(null, null, null) :
					this.dbl();
				var u = s.redSqr(),
					c = u.redMul(s),
					l = r.redMul(u),
					h = a.redSqr().redIAdd(c).redISub(l).redISub(l),
					f = a.redMul(l.redISub(h)).redISub(i.redMul(c)),
					d = this.z.redMul(s);
				return this.curve.jpoint(h, f, d)
			}, Fr.prototype.dblp = function(t) {
				if (0 === t) return this;
				if (this.isInfinity()) return this;
				if (!t) return this.dbl();
				var e;
				if (this.curve.zeroA || this.curve.threeA) {
					var r = this;
					for (e = 0; e < t; e++) r = r.dbl();
					return r
				}
				var n = this.curve.a,
					i = this.curve.tinv,
					o = this.x,
					s = this.y,
					a = this.z,
					u = a.redSqr().redSqr(),
					c = s.redAdd(s);
				for (e = 0; e < t; e++) {
					var l = o.redSqr(),
						h = c.redSqr(),
						f = h.redSqr(),
						d = l.redAdd(l).redIAdd(l).redIAdd(n.redMul(u)),
						p = o.redMul(h),
						m = d.redSqr().redISub(p.redAdd(p)),
						g = p.redISub(m),
						y = d.redMul(g);
					y = y.redIAdd(y).redISub(f);
					var v = c.redMul(a);
					e + 1 < t && (u = u.redMul(f)), o = m, a = v, c = y
				}
				return this.curve.jpoint(o, c.redMul(i), a)
			}, Fr.prototype.dbl = function() {
				return this.isInfinity() ? this : this.curve.zeroA ? this._zeroDbl() : this.curve
					.threeA ? this._threeDbl() : this._dbl()
			}, Fr.prototype._zeroDbl = function() {
				var t, e, r;
				if (this.zOne) {
					var n = this.x.redSqr(),
						i = this.y.redSqr(),
						o = i.redSqr(),
						s = this.x.redAdd(i).redSqr().redISub(n).redISub(o);
					s = s.redIAdd(s);
					var a = n.redAdd(n).redIAdd(n),
						u = a.redSqr().redISub(s).redISub(s),
						c = o.redIAdd(o);
					c = (c = c.redIAdd(c)).redIAdd(c), t = u, e = a.redMul(s.redISub(u)).redISub(c),
						r = this.y.redAdd(this.y)
				} else {
					var l = this.x.redSqr(),
						h = this.y.redSqr(),
						f = h.redSqr(),
						d = this.x.redAdd(h).redSqr().redISub(l).redISub(f);
					d = d.redIAdd(d);
					var p = l.redAdd(l).redIAdd(l),
						m = p.redSqr(),
						g = f.redIAdd(f);
					g = (g = g.redIAdd(g)).redIAdd(g), t = m.redISub(d).redISub(d), e = p.redMul(d
						.redISub(t)).redISub(g), r = (r = this.y.redMul(this.z)).redIAdd(r)
				}
				return this.curve.jpoint(t, e, r)
			}, Fr.prototype._threeDbl = function() {
				var t, e, r;
				if (this.zOne) {
					var n = this.x.redSqr(),
						i = this.y.redSqr(),
						o = i.redSqr(),
						s = this.x.redAdd(i).redSqr().redISub(n).redISub(o);
					s = s.redIAdd(s);
					var a = n.redAdd(n).redIAdd(n).redIAdd(this.curve.a),
						u = a.redSqr().redISub(s).redISub(s);
					t = u;
					var c = o.redIAdd(o);
					c = (c = c.redIAdd(c)).redIAdd(c), e = a.redMul(s.redISub(u)).redISub(c), r =
						this.y.redAdd(this.y)
				} else {
					var l = this.z.redSqr(),
						h = this.y.redSqr(),
						f = this.x.redMul(h),
						d = this.x.redSub(l).redMul(this.x.redAdd(l));
					d = d.redAdd(d).redIAdd(d);
					var p = f.redIAdd(f),
						m = (p = p.redIAdd(p)).redAdd(p);
					t = d.redSqr().redISub(m), r = this.y.redAdd(this.z).redSqr().redISub(h)
						.redISub(l);
					var g = h.redSqr();
					g = (g = (g = g.redIAdd(g)).redIAdd(g)).redIAdd(g), e = d.redMul(p.redISub(t))
						.redISub(g)
				}
				return this.curve.jpoint(t, e, r)
			}, Fr.prototype._dbl = function() {
				var t = this.curve.a,
					e = this.x,
					r = this.y,
					n = this.z,
					i = n.redSqr().redSqr(),
					o = e.redSqr(),
					s = r.redSqr(),
					a = o.redAdd(o).redIAdd(o).redIAdd(t.redMul(i)),
					u = e.redAdd(e),
					c = (u = u.redIAdd(u)).redMul(s),
					l = a.redSqr().redISub(c.redAdd(c)),
					h = c.redISub(l),
					f = s.redSqr();
				f = (f = (f = f.redIAdd(f)).redIAdd(f)).redIAdd(f);
				var d = a.redMul(h).redISub(f),
					p = r.redAdd(r).redMul(n);
				return this.curve.jpoint(l, d, p)
			}, Fr.prototype.trpl = function() {
				if (!this.curve.zeroA) return this.dbl().add(this);
				var t = this.x.redSqr(),
					e = this.y.redSqr(),
					r = this.z.redSqr(),
					n = e.redSqr(),
					i = t.redAdd(t).redIAdd(t),
					o = i.redSqr(),
					s = this.x.redAdd(e).redSqr().redISub(t).redISub(n),
					a = (s = (s = (s = s.redIAdd(s)).redAdd(s).redIAdd(s)).redISub(o)).redSqr(),
					u = n.redIAdd(n);
				u = (u = (u = u.redIAdd(u)).redIAdd(u)).redIAdd(u);
				var c = i.redIAdd(s).redSqr().redISub(o).redISub(a).redISub(u),
					l = e.redMul(c);
				l = (l = l.redIAdd(l)).redIAdd(l);
				var h = this.x.redMul(a).redISub(l);
				h = (h = h.redIAdd(h)).redIAdd(h);
				var f = this.y.redMul(c.redMul(u.redISub(c)).redISub(s.redMul(a)));
				f = (f = (f = f.redIAdd(f)).redIAdd(f)).redIAdd(f);
				var d = this.z.redAdd(s).redSqr().redISub(r).redISub(a);
				return this.curve.jpoint(h, f, d)
			}, Fr.prototype.mul = function(t, e) {
				return t = new(W())(t, e), this.curve._wnafMul(this, t)
			}, Fr.prototype.eq = function(t) {
				if ("affine" === t.type) return this.eq(t.toJ());
				if (this === t) return !0;
				var e = this.z.redSqr(),
					r = t.z.redSqr();
				if (0 !== this.x.redMul(r).redISub(t.x.redMul(e)).cmpn(0)) return !1;
				var n = e.redMul(this.z),
					i = r.redMul(t.z);
				return 0 === this.y.redMul(i).redISub(t.y.redMul(n)).cmpn(0)
			}, Fr.prototype.eqXToP = function(t) {
				var e = this.z.redSqr(),
					r = t.toRed(this.curve.red).redMul(e);
				if (0 === this.x.cmp(r)) return !0;
				for (var n = t.clone(), i = this.curve.redN.redMul(e);;) {
					if (n.iadd(this.curve.n), n.cmp(this.curve.p) >= 0) return !1;
					if (r.redIAdd(i), 0 === this.x.cmp(r)) return !0
				}
			}, Fr.prototype.inspect = function() {
				return this.isInfinity() ? "<EC JPoint Infinity>" : "<EC JPoint x: " + this.x
					.toString(16, 2) + " y: " + this.y.toString(16, 2) + " z: " + this.z.toString(
						16, 2) + ">"
			}, Fr.prototype.isInfinity = function() {
				return 0 === this.z.cmpn(0)
			};
			var jr = wr((function(t, e) {
					var r = e;
					r.base = Mr, r.short = Cr, r.mont = null, r.edwards = null
				})),
				Lr = wr((function(t, e) {
					var r, n = e,
						i = Ar.assert;

					function o(t) {
						"short" === t.type ? this.curve = new jr.short(t) : "edwards" === t
							.type ? this.curve = new jr.edwards(t) : this.curve = new jr.mont(
							t), this.g = this.curve.g, this.n = this.curve.n, this.hash = t
							.hash, i(this.g.validate(), "Invalid curve"), i(this.g.mul(this.n)
								.isInfinity(), "Invalid curve, G*N != O")
					}

					function s(t, e) {
						Object.defineProperty(n, t, {
							configurable: !0,
							enumerable: !0,
							get: function() {
								var r = new o(e);
								return Object.defineProperty(n, t, {
									configurable: !0,
									enumerable: !0,
									value: r
								}), r
							}
						})
					}
					n.PresetCurve = o, s("p192", {
						type: "short",
						prime: "p192",
						p: "ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff",
						a: "ffffffff ffffffff ffffffff fffffffe ffffffff fffffffc",
						b: "64210519 e59c80e7 0fa7e9ab 72243049 feb8deec c146b9b1",
						n: "ffffffff ffffffff ffffffff 99def836 146bc9b1 b4d22831",
						hash: br().sha256,
						gRed: !1,
						g: ["188da80e b03090f6 7cbf20eb 43a18800 f4ff0afd 82ff1012",
							"07192b95 ffc8da78 631011ed 6b24cdd5 73f977a1 1e794811"
						]
					}), s("p224", {
						type: "short",
						prime: "p224",
						p: "ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001",
						a: "ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff fffffffe",
						b: "b4050a85 0c04b3ab f5413256 5044b0b7 d7bfd8ba 270b3943 2355ffb4",
						n: "ffffffff ffffffff ffffffff ffff16a2 e0b8f03e 13dd2945 5c5c2a3d",
						hash: br().sha256,
						gRed: !1,
						g: ["b70e0cbd 6bb4bf7f 321390b9 4a03c1d3 56c21122 343280d6 115c1d21",
							"bd376388 b5f723fb 4c22dfe6 cd4375a0 5a074764 44d58199 85007e34"
						]
					}), s("p256", {
						type: "short",
						prime: null,
						p: "ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff ffffffff",
						a: "ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff fffffffc",
						b: "5ac635d8 aa3a93e7 b3ebbd55 769886bc 651d06b0 cc53b0f6 3bce3c3e 27d2604b",
						n: "ffffffff 00000000 ffffffff ffffffff bce6faad a7179e84 f3b9cac2 fc632551",
						hash: br().sha256,
						gRed: !1,
						g: ["6b17d1f2 e12c4247 f8bce6e5 63a440f2 77037d81 2deb33a0 f4a13945 d898c296",
							"4fe342e2 fe1a7f9b 8ee7eb4a 7c0f9e16 2bce3357 6b315ece cbb64068 37bf51f5"
						]
					}), s("p384", {
						type: "short",
						prime: null,
						p: "ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe ffffffff 00000000 00000000 ffffffff",
						a: "ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe ffffffff 00000000 00000000 fffffffc",
						b: "b3312fa7 e23ee7e4 988e056b e3f82d19 181d9c6e fe814112 0314088f 5013875a c656398d 8a2ed19d 2a85c8ed d3ec2aef",
						n: "ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff c7634d81 f4372ddf 581a0db2 48b0a77a ecec196a ccc52973",
						hash: br().sha384,
						gRed: !1,
						g: ["aa87ca22 be8b0537 8eb1c71e f320ad74 6e1d3b62 8ba79b98 59f741e0 82542a38 5502f25d bf55296c 3a545e38 72760ab7",
							"3617de4a 96262c6f 5d9e98bf 9292dc29 f8f41dbd 289a147c e9da3113 b5f0b8c0 0a60b1ce 1d7e819d 7a431d7c 90ea0e5f"
						]
					}), s("p521", {
						type: "short",
						prime: null,
						p: "000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff",
						a: "000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffc",
						b: "00000051 953eb961 8e1c9a1f 929a21a0 b68540ee a2da725b 99b315f3 b8b48991 8ef109e1 56193951 ec7e937b 1652c0bd 3bb1bf07 3573df88 3d2c34f1 ef451fd4 6b503f00",
						n: "000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffa 51868783 bf2f966b 7fcc0148 f709a5d0 3bb5c9b8 899c47ae bb6fb71e 91386409",
						hash: br().sha512,
						gRed: !1,
						g: ["000000c6 858e06b7 0404e9cd 9e3ecb66 2395b442 9c648139 053fb521 f828af60 6b4d3dba a14b5e77 efe75928 fe1dc127 a2ffa8de 3348b3c1 856a429b f97e7e31 c2e5bd66",
							"00000118 39296a78 9a3bc004 5c8a5fb4 2c7d1bd9 98f54449 579b4468 17afbd17 273e662c 97ee7299 5ef42640 c550b901 3fad0761 353c7086 a272c240 88be9476 9fd16650"
						]
					}), s("curve25519", {
						type: "mont",
						prime: "p25519",
						p: "7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed",
						a: "76d06",
						b: "1",
						n: "1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed",
						hash: br().sha256,
						gRed: !1,
						g: ["9"]
					}), s("ed25519", {
						type: "edwards",
						prime: "p25519",
						p: "7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed",
						a: "-1",
						c: "1",
						d: "52036cee2b6ffe73 8cc740797779e898 00700a4d4141d8ab 75eb4dca135978a3",
						n: "1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed",
						hash: br().sha256,
						gRed: !1,
						g: ["216936d3cd6e53fec0a4e231fdd6dc5c692cc7609525a7b2c9562d608f25d51a",
							"6666666666666666666666666666666666666666666666666666666666666658"
						]
					});
					try {
						r = null.crash()
					} catch (t) {
						r = void 0
					}
					s("secp256k1", {
						type: "short",
						prime: "k256",
						p: "ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f",
						a: "0",
						b: "7",
						n: "ffffffff ffffffff ffffffff fffffffe baaedce6 af48a03b bfd25e8c d0364141",
						h: "1",
						hash: br().sha256,
						beta: "7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee",
						lambda: "5363ad4cc05c30e0a5261c028812645a122e22ea20816678df02967c1b23bd72",
						basis: [{
							a: "3086d221a7d46bcde86c90e49284eb15",
							b: "-e4437ed6010e88286f547fa90abfe4c3"
						}, {
							a: "114ca50f7a8e2f3f657c1108d9d44cfd8",
							b: "3086d221a7d46bcde86c90e49284eb15"
						}],
						gRed: !1,
						g: ["79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798",
							"483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8",
							r
						]
					})
				}));

			function Ur(t) {
				if (!(this instanceof Ur)) return new Ur(t);
				this.hash = t.hash, this.predResist = !!t.predResist, this.outLen = this.hash.outSize,
					this.minEntropy = t.minEntropy || this.hash.hmacStrength, this._reseed = null, this
					.reseedInterval = null, this.K = null, this.V = null;
				var e = xr.toArray(t.entropy, t.entropyEnc || "hex"),
					r = xr.toArray(t.nonce, t.nonceEnc || "hex"),
					n = xr.toArray(t.pers, t.persEnc || "hex");
				Er(e.length >= this.minEntropy / 8, "Not enough entropy. Minimum is: " + this
					.minEntropy + " bits"), this._init(e, r, n)
			}
			var Dr = Ur;
			Ur.prototype._init = function(t, e, r) {
				var n = t.concat(e).concat(r);
				this.K = new Array(this.outLen / 8), this.V = new Array(this.outLen / 8);
				for (var i = 0; i < this.V.length; i++) this.K[i] = 0, this.V[i] = 1;
				this._update(n), this._reseed = 1, this.reseedInterval = 281474976710656
			}, Ur.prototype._hmac = function() {
				return new(br().hmac)(this.hash, this.K)
			}, Ur.prototype._update = function(t) {
				var e = this._hmac().update(this.V).update([0]);
				t && (e = e.update(t)), this.K = e.digest(), this.V = this._hmac().update(this.V)
					.digest(), t && (this.K = this._hmac().update(this.V).update([1]).update(t)
						.digest(), this.V = this._hmac().update(this.V).digest())
			}, Ur.prototype.reseed = function(t, e, r, n) {
				"string" != typeof e && (n = r, r = e, e = null), t = xr.toArray(t, e), r = xr
					.toArray(r, n), Er(t.length >= this.minEntropy / 8,
						"Not enough entropy. Minimum is: " + this.minEntropy + " bits"), this
					._update(t.concat(r || [])), this._reseed = 1
			}, Ur.prototype.generate = function(t, e, r, n) {
				if (this._reseed > this.reseedInterval) throw new Error("Reseed is required");
				"string" != typeof e && (n = r, r = e, e = null), r && (r = xr.toArray(r, n ||
					"hex"), this._update(r));
				for (var i = []; i.length < t;) this.V = this._hmac().update(this.V).digest(), i = i
					.concat(this.V);
				var o = i.slice(0, t);
				return this._update(r), this._reseed++, xr.encode(o, e)
			};
			var qr = Ar.assert;

			function zr(t, e) {
				this.ec = t, this.priv = null, this.pub = null, e.priv && this._importPrivate(e.priv, e
					.privEnc), e.pub && this._importPublic(e.pub, e.pubEnc)
			}
			var Gr = zr;
			zr.fromPublic = function(t, e, r) {
				return e instanceof zr ? e : new zr(t, {
					pub: e,
					pubEnc: r
				})
			}, zr.fromPrivate = function(t, e, r) {
				return e instanceof zr ? e : new zr(t, {
					priv: e,
					privEnc: r
				})
			}, zr.prototype.validate = function() {
				var t = this.getPublic();
				return t.isInfinity() ? {
					result: !1,
					reason: "Invalid public key"
				} : t.validate() ? t.mul(this.ec.curve.n).isInfinity() ? {
					result: !0,
					reason: null
				} : {
					result: !1,
					reason: "Public key * N != O"
				} : {
					result: !1,
					reason: "Public key is not a point"
				}
			}, zr.prototype.getPublic = function(t, e) {
				return "string" == typeof t && (e = t, t = null), this.pub || (this.pub = this.ec.g
					.mul(this.priv)), e ? this.pub.encode(e, t) : this.pub
			}, zr.prototype.getPrivate = function(t) {
				return "hex" === t ? this.priv.toString(16, 2) : this.priv
			}, zr.prototype._importPrivate = function(t, e) {
				this.priv = new(W())(t, e || 16), this.priv = this.priv.umod(this.ec.curve.n)
			}, zr.prototype._importPublic = function(t, e) {
				if (t.x || t.y) return "mont" === this.ec.curve.type ? qr(t.x,
					"Need x coordinate") : "short" !== this.ec.curve.type && "edwards" !== this
					.ec.curve.type || qr(t.x && t.y, "Need both x and y coordinate"), void(this
						.pub = this.ec.curve.point(t.x, t.y));
				this.pub = this.ec.curve.decodePoint(t, e)
			}, zr.prototype.derive = function(t) {
				return t.validate() || qr(t.validate(), "public point not validated"), t.mul(this
					.priv).getX()
			}, zr.prototype.sign = function(t, e, r) {
				return this.ec.sign(t, this, e, r)
			}, zr.prototype.verify = function(t, e) {
				return this.ec.verify(t, e, this)
			}, zr.prototype.inspect = function() {
				return "<Key priv: " + (this.priv && this.priv.toString(16, 2)) + " pub: " + (this
					.pub && this.pub.inspect()) + " >"
			};
			var Vr = Ar.assert;

			function Hr(t, e) {
				if (t instanceof Hr) return t;
				this._importDER(t, e) || (Vr(t.r && t.s, "Signature without r or s"), this.r = new(W())(
						t.r, 16), this.s = new(W())(t.s, 16), void 0 === t.recoveryParam ? this
					.recoveryParam = null : this.recoveryParam = t.recoveryParam)
			}
			var $r = Hr;

			function Wr() {
				this.place = 0
			}

			function Jr(t, e) {
				var r = t[e.place++];
				if (!(128 & r)) return r;
				var n = 15 & r;
				if (0 === n || n > 4) return !1;
				for (var i = 0, o = 0, s = e.place; o < n; o++, s++) i <<= 8, i |= t[s], i >>>= 0;
				return !(i <= 127) && (e.place = s, i)
			}

			function Xr(t) {
				for (var e = 0, r = t.length - 1; !t[e] && !(128 & t[e + 1]) && e < r;) e++;
				return 0 === e ? t : t.slice(e)
			}

			function Kr(t, e) {
				if (e < 128) t.push(e);
				else {
					var r = 1 + (Math.log(e) / Math.LN2 >>> 3);
					for (t.push(128 | r); --r;) t.push(e >>> (r << 3) & 255);
					t.push(e)
				}
			}
			Hr.prototype._importDER = function(t, e) {
				t = Ar.toArray(t, e);
				var r = new Wr;
				if (48 !== t[r.place++]) return !1;
				var n = Jr(t, r);
				if (!1 === n) return !1;
				if (n + r.place !== t.length) return !1;
				if (2 !== t[r.place++]) return !1;
				var i = Jr(t, r);
				if (!1 === i) return !1;
				var o = t.slice(r.place, i + r.place);
				if (r.place += i, 2 !== t[r.place++]) return !1;
				var s = Jr(t, r);
				if (!1 === s) return !1;
				if (t.length !== s + r.place) return !1;
				var a = t.slice(r.place, s + r.place);
				if (0 === o[0]) {
					if (!(128 & o[1])) return !1;
					o = o.slice(1)
				}
				if (0 === a[0]) {
					if (!(128 & a[1])) return !1;
					a = a.slice(1)
				}
				return this.r = new(W())(o), this.s = new(W())(a), this.recoveryParam = null, !0
			}, Hr.prototype.toDER = function(t) {
				var e = this.r.toArray(),
					r = this.s.toArray();
				for (128 & e[0] && (e = [0].concat(e)), 128 & r[0] && (r = [0].concat(r)), e = Xr(
					e), r = Xr(r); !(r[0] || 128 & r[1]);) r = r.slice(1);
				var n = [2];
				Kr(n, e.length), (n = n.concat(e)).push(2), Kr(n, r.length);
				var i = n.concat(r),
					o = [48];
				return Kr(o, i.length), o = o.concat(i), Ar.encode(o, t)
			};
			var Zr = function() {
					throw new Error("unsupported")
				},
				Qr = Ar.assert;

			function Yr(t) {
				if (!(this instanceof Yr)) return new Yr(t);
				"string" == typeof t && (Qr(Object.prototype.hasOwnProperty.call(Lr, t),
						"Unknown curve " + t), t = Lr[t]), t instanceof Lr.PresetCurve && (t = {
						curve: t
					}), this.curve = t.curve.curve, this.n = this.curve.n, this.nh = this.n.ushrn(1),
					this.g = this.curve.g, this.g = t.curve.g, this.g.precompute(t.curve.n.bitLength() +
						1), this.hash = t.hash || t.curve.hash
			}
			var tn = Yr;
			Yr.prototype.keyPair = function(t) {
				return new Gr(this, t)
			}, Yr.prototype.keyFromPrivate = function(t, e) {
				return Gr.fromPrivate(this, t, e)
			}, Yr.prototype.keyFromPublic = function(t, e) {
				return Gr.fromPublic(this, t, e)
			}, Yr.prototype.genKeyPair = function(t) {
				t || (t = {});
				for (var e = new Dr({
						hash: this.hash,
						pers: t.pers,
						persEnc: t.persEnc || "utf8",
						entropy: t.entropy || Zr(this.hash.hmacStrength),
						entropyEnc: t.entropy && t.entropyEnc || "utf8",
						nonce: this.n.toArray()
					}), r = this.n.byteLength(), n = this.n.sub(new(W())(2));;) {
					var i = new(W())(e.generate(r));
					if (!(i.cmp(n) > 0)) return i.iaddn(1), this.keyFromPrivate(i)
				}
			}, Yr.prototype._truncateToN = function(t, e) {
				var r = 8 * t.byteLength() - this.n.bitLength();
				return r > 0 && (t = t.ushrn(r)), !e && t.cmp(this.n) >= 0 ? t.sub(this.n) : t
			}, Yr.prototype.sign = function(t, e, r, n) {
				"object" == typeof r && (n = r, r = null), n || (n = {}), e = this.keyFromPrivate(e,
					r), t = this._truncateToN(new(W())(t, 16));
				for (var i = this.n.byteLength(), o = e.getPrivate().toArray("be", i), s = t
						.toArray("be", i), a = new Dr({
							hash: this.hash,
							entropy: o,
							nonce: s,
							pers: n.pers,
							persEnc: n.persEnc || "utf8"
						}), u = this.n.sub(new(W())(1)), c = 0;; c++) {
					var l = n.k ? n.k(c) : new(W())(a.generate(this.n.byteLength()));
					if (!((l = this._truncateToN(l, !0)).cmpn(1) <= 0 || l.cmp(u) >= 0)) {
						var h = this.g.mul(l);
						if (!h.isInfinity()) {
							var f = h.getX(),
								d = f.umod(this.n);
							if (0 !== d.cmpn(0)) {
								var p = l.invm(this.n).mul(d.mul(e.getPrivate()).iadd(t));
								if (0 !== (p = p.umod(this.n)).cmpn(0)) {
									var m = (h.getY().isOdd() ? 1 : 0) | (0 !== f.cmp(d) ? 2 : 0);
									return n.canonical && p.cmp(this.nh) > 0 && (p = this.n.sub(p),
										m ^= 1), new $r({
										r: d,
										s: p,
										recoveryParam: m
									})
								}
							}
						}
					}
				}
			}, Yr.prototype.verify = function(t, e, r, n) {
				t = this._truncateToN(new(W())(t, 16)), r = this.keyFromPublic(r, n);
				var i = (e = new $r(e, "hex")).r,
					o = e.s;
				if (i.cmpn(1) < 0 || i.cmp(this.n) >= 0) return !1;
				if (o.cmpn(1) < 0 || o.cmp(this.n) >= 0) return !1;
				var s, a = o.invm(this.n),
					u = a.mul(t).umod(this.n),
					c = a.mul(i).umod(this.n);
				return this.curve._maxwellTrick ? !(s = this.g.jmulAdd(u, r.getPublic(), c))
					.isInfinity() && s.eqXToP(i) : !(s = this.g.mulAdd(u, r.getPublic(), c))
					.isInfinity() && 0 === s.getX().umod(this.n).cmp(i)
			}, Yr.prototype.recoverPubKey = function(t, e, r, n) {
				Qr((3 & r) === r, "The recovery param is more than two bits"), e = new $r(e, n);
				var i = this.n,
					o = new(W())(t),
					s = e.r,
					a = e.s,
					u = 1 & r,
					c = r >> 1;
				if (s.cmp(this.curve.p.umod(this.curve.n)) >= 0 && c) throw new Error(
					"Unable to find sencond key candinate");
				s = c ? this.curve.pointFromX(s.add(this.curve.n), u) : this.curve.pointFromX(s, u);
				var l = e.r.invm(i),
					h = i.sub(o).mul(l).umod(i),
					f = a.mul(l).umod(i);
				return this.g.mulAdd(h, s, f)
			}, Yr.prototype.getKeyRecoveryParam = function(t, e, r, n) {
				if (null !== (e = new $r(e, n)).recoveryParam) return e.recoveryParam;
				for (var i = 0; i < 4; i++) {
					var o;
					try {
						o = this.recoverPubKey(t, e, i)
					} catch (t) {
						continue
					}
					if (o.eq(r)) return i
				}
				throw new Error("Unable to find valid recovery factor")
			};
			var en = wr((function(t, e) {
				var r = e;
				r.version = "6.5.4", r.utils = Ar, r.rand = function() {
					throw new Error("unsupported")
				}, r.curve = jr, r.curves = Lr, r.ec = tn, r.eddsa = null
			})).ec;
			const rn = new S("signing-key/5.6.0");
			let nn = null;

			function on() {
				return nn || (nn = new en("secp256k1")), nn
			}
			class sn {
				constructor(t) {
					jt(this, "curve", "secp256k1"), jt(this, "privateKey", U(t));
					const e = on().keyFromPrivate(C(this.privateKey));
					jt(this, "publicKey", "0x" + e.getPublic(!1, "hex")), jt(this,
						"compressedPublicKey", "0x" + e.getPublic(!0, "hex")), jt(this,
						"_isSigningKey", !0)
				}
				_addPoint(t) {
					const e = on().keyFromPublic(C(this.publicKey)),
						r = on().keyFromPublic(C(t));
					return "0x" + e.pub.add(r.pub).encodeCompressed("hex")
				}
				signDigest(t) {
					const e = on().keyFromPrivate(C(this.privateKey)),
						r = C(t);
					32 !== r.length && rn.throwArgumentError("bad digest length", "digest", t);
					const n = e.sign(r, {
						canonical: !0
					});
					return H({
						recoveryParam: n.recoveryParam,
						r: V("0x" + n.r.toString(16), 32),
						s: V("0x" + n.s.toString(16), 32)
					})
				}
				computeSharedSecret(t) {
					const e = on().keyFromPrivate(C(this.privateKey)),
						r = on().keyFromPublic(C(an(t)));
					return V("0x" + e.derive(r.getPublic()).toString(16), 32)
				}
				static isSigningKey(t) {
					return !(!t || !t._isSigningKey)
				}
			}

			function an(t, e) {
				const r = C(t);
				if (32 === r.length) {
					const t = new sn(r);
					return e ? "0x" + on().keyFromPrivate(r).getPublic(!0, "hex") : t.publicKey
				}
				return 33 === r.length ? e ? U(r) : "0x" + on().keyFromPublic(r).getPublic(!1, "hex") :
					65 === r.length ? e ? "0x" + on().keyFromPublic(r).getPublic(!0, "hex") : U(r) : rn
					.throwArgumentError("invalid public or private key", "key", "[REDACTED]")
			}
			const un = new S("transactions/5.6.0");
			var cn;

			function ln(t) {
				return "0x" === t ? null : _t(t)
			}

			function hn(t) {
				return "0x" === t ? we : tt.from(t)
			}! function(t) {
				t[t.legacy = 0] = "legacy", t[t.eip2930 = 1] = "eip2930", t[t.eip1559 = 2] = "eip1559"
			}(cn || (cn = {}));

			function fn(t, e) {
				return function(t) {
					return _t(q(at(q(an(t), 1)), 12))
				}(function(t, e) {
					const r = H(e),
						n = {
							r: C(r.r),
							s: C(r.s)
						};
					return "0x" + on().recoverPubKey(C(t), n, r.recoveryParam).encode("hex", !1)
				}(C(t), e))
			}

			function dn(t, e) {
				const r = F(tt.from(t).toHexString());
				return r.length > 32 && un.throwArgumentError("invalid length for " + e,
					"transaction:" + e, t), r
			}

			function pn(t, e) {
				return {
					address: _t(t),
					storageKeys: (e || []).map(((e, r) => (32 !== D(e) && un.throwArgumentError(
							"invalid access list storageKey", `accessList[${t}:${r}]`, e), e
						.toLowerCase())))
				}
			}

			function mn(t) {
				if (Array.isArray(t)) return t.map(((t, e) => Array.isArray(t) ? (t.length > 2 && un
					.throwArgumentError(
						"access list expected to be [ address, storageKeys[] ]",
						`value[${e}]`, t), pn(t[0], t[1])) : pn(t.address, t
					.storageKeys)));
				const e = Object.keys(t).map((e => {
					const r = t[e].reduce(((t, e) => (t[e] = !0, t)), {});
					return pn(e, Object.keys(r).sort())
				}));
				return e.sort(((t, e) => t.address.localeCompare(e.address))), e
			}

			function gn(t) {
				return mn(t).map((t => [t.address, t.storageKeys]))
			}

			function yn(t, e) {
				if (null != t.gasPrice) {
					const e = tt.from(t.gasPrice),
						r = tt.from(t.maxFeePerGas || 0);
					e.eq(r) || un.throwArgumentError("mismatch EIP-1559 gasPrice != maxFeePerGas",
					"tx", {
						gasPrice: e,
						maxFeePerGas: r
					})
				}
				const r = [dn(t.chainId || 0, "chainId"), dn(t.nonce || 0, "nonce"), dn(t
						.maxPriorityFeePerGas || 0, "maxPriorityFeePerGas"), dn(t.maxFeePerGas || 0,
						"maxFeePerGas"), dn(t.gasLimit || 0, "gasLimit"), null != t.to ? _t(t.to) :
					"0x", dn(t.value || 0, "value"), t.data || "0x", gn(t.accessList || [])
				];
				if (e) {
					const t = H(e);
					r.push(dn(t.recoveryParam, "recoveryParam")), r.push(F(t.r)), r.push(F(t.s))
				}
				return z(["0x02", ft(r)])
			}

			function vn(t, e) {
				const r = [dn(t.chainId || 0, "chainId"), dn(t.nonce || 0, "nonce"), dn(t.gasPrice || 0,
						"gasPrice"), dn(t.gasLimit || 0, "gasLimit"), null != t.to ? _t(t.to) :
					"0x", dn(t.value || 0, "value"), t.data || "0x", gn(t.accessList || [])
				];
				if (e) {
					const t = H(e);
					r.push(dn(t.recoveryParam, "recoveryParam")), r.push(F(t.r)), r.push(F(t.s))
				}
				return z(["0x01", ft(r)])
			}

			function bn(t, e, r) {
				try {
					const r = hn(e[0]).toNumber();
					if (0 !== r && 1 !== r) throw new Error("bad recid");
					t.v = r
				} catch (t) {
					un.throwArgumentError("invalid v for transaction type: 1", "v", e[0])
				}
				t.r = V(e[1], 32), t.s = V(e[2], 32);
				try {
					const e = at(r(t));
					t.from = fn(e, {
						r: t.r,
						s: t.s,
						recoveryParam: t.v
					})
				} catch (t) {
					console.log(t)
				}
			}

			function wn(t) {
				const e = C(t);
				if (e[0] > 127) return function(t) {
					const e = mt(t);
					9 !== e.length && 6 !== e.length && un.throwArgumentError(
						"invalid raw transaction", "rawTransaction", t);
					const r = {
						nonce: hn(e[0]).toNumber(),
						gasPrice: hn(e[1]),
						gasLimit: hn(e[2]),
						to: ln(e[3]),
						value: hn(e[4]),
						data: e[5],
						chainId: 0
					};
					if (6 === e.length) return r;
					try {
						r.v = tt.from(e[6]).toNumber()
					} catch (t) {
						return console.log(t), r
					}
					if (r.r = V(e[7], 32), r.s = V(e[8], 32), tt.from(r.r).isZero() && tt.from(r
							.s).isZero()) r.chainId = r.v, r.v = 0;
					else {
						r.chainId = Math.floor((r.v - 35) / 2), r.chainId < 0 && (r.chainId =
						0);
						let n = r.v - 27;
						const i = e.slice(0, 6);
						0 !== r.chainId && (i.push(U(r.chainId)), i.push("0x"), i.push("0x"),
							n -= 2 * r.chainId + 8);
						const o = at(ft(i));
						try {
							r.from = fn(o, {
								r: U(r.r),
								s: U(r.s),
								recoveryParam: n
							})
						} catch (t) {
							console.log(t)
						}
						r.hash = at(t)
					}
					return r.type = null, r
				}(e);
				switch (e[0]) {
					case 1:
						return function(t) {
							const e = mt(t.slice(1));
							8 !== e.length && 11 !== e.length && un.throwArgumentError(
								"invalid component count for transaction type: 1", "payload", U(
									t));
							const r = {
								type: 1,
								chainId: hn(e[0]).toNumber(),
								nonce: hn(e[1]).toNumber(),
								gasPrice: hn(e[2]),
								gasLimit: hn(e[3]),
								to: ln(e[4]),
								value: hn(e[5]),
								data: e[6],
								accessList: mn(e[7])
							};
							return 8 === e.length || (r.hash = at(t), bn(r, e.slice(8), vn)), r
						}(e);
					case 2:
						return function(t) {
							const e = mt(t.slice(1));
							9 !== e.length && 12 !== e.length && un.throwArgumentError(
								"invalid component count for transaction type: 2", "payload", U(
									t));
							const r = hn(e[2]),
								n = hn(e[3]),
								i = {
									type: 2,
									chainId: hn(e[0]).toNumber(),
									nonce: hn(e[1]).toNumber(),
									maxPriorityFeePerGas: r,
									maxFeePerGas: n,
									gasPrice: null,
									gasLimit: hn(e[4]),
									to: ln(e[5]),
									value: hn(e[6]),
									data: e[7],
									accessList: mn(e[8])
								};
							return 9 === e.length || (i.hash = at(t), bn(i, e.slice(9), yn)), i
						}(e)
				}
				return un.throwError(`unsupported transaction type: ${e[0]}`, S.errors
					.UNSUPPORTED_OPERATION, {
						operation: "parseTransaction",
						transactionType: e[0]
					})
			}
			var En = function(t, e, r, n) {
				return new(r || (r = Promise))((function(i, o) {
					function s(t) {
						try {
							u(n.next(t))
						} catch (t) {
							o(t)
						}
					}

					function a(t) {
						try {
							u(n.throw(t))
						} catch (t) {
							o(t)
						}
					}

					function u(t) {
						var e;
						t.done ? i(t.value) : (e = t.value, e instanceof r ? e : new r((
							function(t) {
								t(e)
							}))).then(s, a)
					}
					u((n = n.apply(t, e || [])).next())
				}))
			};
			const _n = new S("contracts/5.6.0");

			function xn(t, e) {
				return En(this, void 0, void 0, (function*() {
					const r = yield e;
					"string" != typeof r && _n.throwArgumentError(
						"invalid address or ENS name", "name", r);
					try {
						return _t(r)
					} catch (t) {}
					t || _n.throwError(
						"a provider or signer is needed to resolve ENS names", S.errors
						.UNSUPPORTED_OPERATION, {
							operation: "resolveName"
						});
					const n = yield t.resolveName(r);
					return null == n && _n.throwArgumentError(
						"resolver or addr is not configured for ENS name", "name", r), n
				}))
			}

			function An(t, e, r) {
				return En(this, void 0, void 0, (function*() {
					return Array.isArray(r) ? yield Promise.all(r.map(((r, n) => An(t, Array
							.isArray(e) ? e[n] : e[r.name], r)))): "address" === r
						.type ? yield xn(t, e): "tuple" === r.type ? yield An(t, e, r
								.components): "array" === r.baseType ? Array
							.isArray(e) ? yield Promise.all(e.map((e => An(t, e, r
								.arrayChildren)))): Promise.reject(_n.makeError(
								"invalid value for array", S.errors
								.INVALID_ARGUMENT, {
									argument: "value",
									value: e
								})): e
				}))
			}

			function kn(t, e, r) {
				return En(this, void 0, void 0, (function*() {
					let n = {};
					r.length === e.inputs.length + 1 && "object" == typeof r[r.length -
						1] && (n = Dt(r.pop())), _n.checkArgumentCount(r.length, e.inputs
							.length, "passed to contract"), t.signer ? n.from ? n.from =
					Ut({
							override: xn(t.signer, n.from),
							signer: t.signer.getAddress()
						}).then((t => En(this, void 0, void 0, (function*() {
							return _t(t.signer) !== t.override && _n
								.throwError(
									"Contract with a Signer cannot override from",
									S.errors.UNSUPPORTED_OPERATION, {
										operation: "overrides.from"
									}), t.override
						})))) : n.from = t.signer.getAddress() : n.from && (n.from = xn(t
							.provider, n.from));
					const i = yield Ut({
						args: An(t.signer || t.provider, r, e.inputs),
						address: t.resolvedAddress,
						overrides: Ut(n) || {}
					}), o = t.interface.encodeFunctionData(e, i.args), s = {
						data: o,
						to: i.address
					}, a = i.overrides;
					if (null != a.nonce && (s.nonce = tt.from(a.nonce).toNumber()), null !=
						a.gasLimit && (s.gasLimit = tt.from(a.gasLimit)), null != a
						.gasPrice && (s.gasPrice = tt.from(a.gasPrice)), null != a
						.maxFeePerGas && (s.maxFeePerGas = tt.from(a.maxFeePerGas)), null !=
						a.maxPriorityFeePerGas && (s.maxPriorityFeePerGas = tt.from(a
							.maxPriorityFeePerGas)), null != a.from && (s.from = a.from),
						null != a.type && (s.type = a.type), null != a.accessList && (s
							.accessList = mn(a.accessList)), null == s.gasLimit && null != e
						.gas) {
						let t = 21e3;
						const r = C(o);
						for (let e = 0; e < r.length; e++) t += 4, r[e] && (t += 64);
						s.gasLimit = tt.from(e.gas).add(t)
					}
					if (a.value) {
						const t = tt.from(a.value);
						t.isZero() || e.payable || _n.throwError(
							"non-payable method cannot override value", S.errors
							.UNSUPPORTED_OPERATION, {
								operation: "overrides.value",
								value: n.value
							}), s.value = t
					}
					a.customData && (s.customData = Dt(a.customData)), a.ccipReadEnabled &&
						(s.ccipReadEnabled = !!a.ccipReadEnabled), delete n.nonce, delete n
						.gasLimit, delete n.gasPrice, delete n.from, delete n.value,
						delete n.type, delete n.accessList, delete n.maxFeePerGas, delete n
						.maxPriorityFeePerGas, delete n.customData, delete n
						.ccipReadEnabled;
					const u = Object.keys(n).filter((t => null != n[t]));
					return u.length && _n.throwError(
						`cannot override ${u.map((t=>JSON.stringify(t))).join(",")}`, S
						.errors.UNSUPPORTED_OPERATION, {
							operation: "overrides",
							overrides: u
						}), s
				}))
			}

			function Nn(t, e) {
				const r = e.wait.bind(e);
				e.wait = e => r(e).then((e => (e.events = e.logs.map((r => {
					let n = Vt(r),
						i = null;
					try {
						i = t.interface.parseLog(r)
					} catch (t) {}
					return i && (n.args = i.args, n.decode = (e, r) => t
							.interface.decodeEventLog(i.eventFragment, e, r), n
							.event = i.name, n.eventSignature = i.signature), n
						.removeListener = () => t.provider, n.getBlock = () => t
						.provider.getBlock(e.blockHash), n.getTransaction =
					() => t.provider.getTransaction(e.transactionHash), n
						.getTransactionReceipt = () => Promise.resolve(e), n
				})), e)))
			}

			function Sn(t, e, r) {
				const n = t.signer || t.provider;
				return function(...i) {
					return En(this, void 0, void 0, (function*() {
						let o;
						if (i.length === e.inputs.length + 1 && "object" == typeof i[i
								.length - 1]) {
							const t = Dt(i.pop());
							null != t.blockTag && (o = yield t.blockTag), delete t
								.blockTag, i.push(t)
						}
						null != t.deployTransaction && (yield t._deployed(o));
						const s = yield kn(t, e, i), a = yield n.call(s, o);
						try {
							let n = t.interface.decodeFunctionResult(e, a);
							return r && 1 === e.outputs.length && (n = n[0]), n
						} catch (e) {
							throw e.code === S.errors.CALL_EXCEPTION && (e.address = t
								.address, e.args = i, e.transaction = s), e
						}
					}))
				}
			}

			function Pn(t, e, r) {
				return e.constant ? Sn(t, e, r) : function(t, e) {
					return function(...r) {
						return En(this, void 0, void 0, (function*() {
							t.signer || _n.throwError(
								"sending a transaction requires a signer", S
								.errors.UNSUPPORTED_OPERATION, {
									operation: "sendTransaction"
								}), null != t.deployTransaction && (yield t
								._deployed());
							const n = yield kn(t, e, r), i = yield t.signer
								.sendTransaction(n);
							return Nn(t, i), i
						}))
					}
				}(t, e)
			}

			function Mn(t) {
				return !t.address || null != t.topics && 0 !== t.topics.length ? (t.address || "*") +
					"@" + (t.topics ? t.topics.map((t => Array.isArray(t) ? t.join("|") : t)).join(
						":") : "") : "*"
			}
			class On {
				constructor(t, e) {
					jt(this, "tag", t), jt(this, "filter", e), this._listeners = []
				}
				addListener(t, e) {
					this._listeners.push({
						listener: t,
						once: e
					})
				}
				removeListener(t) {
					let e = !1;
					this._listeners = this._listeners.filter((r => !(!e && r.listener === t) || (
						e = !0, !1)))
				}
				removeAllListeners() {
					this._listeners = []
				}
				listeners() {
					return this._listeners.map((t => t.listener))
				}
				listenerCount() {
					return this._listeners.length
				}
				run(t) {
					const e = this.listenerCount();
					return this._listeners = this._listeners.filter((e => {
						const r = t.slice();
						return setTimeout((() => {
							e.listener.apply(this, r)
						}), 0), !e.once
					})), e
				}
				prepareEvent(t) {}
				getEmit(t) {
					return [t]
				}
			}
			class In extends On {
				constructor() {
					super("error", null)
				}
			}
			class Tn extends On {
				constructor(t, e, r, n) {
					const i = {
						address: t
					};
					let o = e.getEventTopic(r);
					n ? (o !== n[0] && _n.throwArgumentError("topic mismatch", "topics", n), i
						.topics = n.slice()) : i.topics = [o], super(Mn(i), i), jt(this,
						"address", t), jt(this, "interface", e), jt(this, "fragment", r)
				}
				prepareEvent(t) {
					super.prepareEvent(t), t.event = this.fragment.name, t.eventSignature = this
						.fragment.format(), t.decode = (t, e) => this.interface.decodeEventLog(this
							.fragment, t, e);
					try {
						t.args = this.interface.decodeEventLog(this.fragment, t.data, t.topics)
					} catch (e) {
						t.args = null, t.decodeError = e
					}
				}
				getEmit(t) {
					const e = function(t) {
						const e = [],
							r = function(t, n) {
								if (Array.isArray(n))
									for (let i in n) {
										const o = t.slice();
										o.push(i);
										try {
											r(o, n[i])
										} catch (t) {
											e.push({
												path: o,
												error: t
											})
										}
									}
							};
						return r([], t), e
					}(t.args);
					if (e.length) throw e[0].error;
					const r = (t.args || []).slice();
					return r.push(t), r
				}
			}
			class Rn extends On {
				constructor(t, e) {
					super("*", {
						address: t
					}), jt(this, "address", t), jt(this, "interface", e)
				}
				prepareEvent(t) {
					super.prepareEvent(t);
					try {
						const e = this.interface.parseLog(t);
						t.event = e.name, t.eventSignature = e.signature, t.decode = (t, r) => this
							.interface.decodeEventLog(e.eventFragment, t, r), t.args = e.args
					} catch (t) {}
				}
			}
			class Cn extends class {
				constructor(t, e, r) {
					_n.checkNew(new.target, Cn), jt(this, "interface", Lt(new.target,
						"getInterface")(e)), null == r ? (jt(this, "provider", null), jt(this,
						"signer", null)) : gr.isSigner(r) ? (jt(this, "provider", r.provider ||
						null), jt(this, "signer", r)) : hr.isProvider(r) ? (jt(this, "provider",
						r), jt(this, "signer", null)) : _n.throwArgumentError(
						"invalid signer or provider", "signerOrProvider", r), jt(this,
						"callStatic", {}), jt(this, "estimateGas", {}), jt(this,
						"functions", {}), jt(this, "populateTransaction", {}), jt(this,
						"filters", {}); {
						const t = {};
						Object.keys(this.interface.events).forEach((e => {
							const r = this.interface.events[e];
							jt(this.filters, e, ((...t) => ({
								address: this.address,
								topics: this.interface
									.encodeFilterTopics(r, t)
							}))), t[r.name] || (t[r.name] = []), t[r.name].push(e)
						})), Object.keys(t).forEach((e => {
							const r = t[e];
							1 === r.length ? jt(this.filters, e, this.filters[r[0]]) :
								_n.warn(
									`Duplicate definition of ${e} (${r.join(", ")})`)
						}))
					}
					if (jt(this, "_runningEvents", {}), jt(this, "_wrappedEmits", {}), null == t &&
						_n.throwArgumentError("invalid contract address or ENS name",
							"addressOrName", t), jt(this, "address", t), this.provider) jt(this,
						"resolvedAddress", xn(this.provider, t));
					else try {
						jt(this, "resolvedAddress", Promise.resolve(_t(t)))
					} catch (t) {
						_n.throwError(
							"provider is required to use ENS name as contract address", S
							.errors.UNSUPPORTED_OPERATION, {
								operation: "new Contract"
							})
					}
					this.resolvedAddress.catch((t => {}));
					const n = {},
						i = {};
					Object.keys(this.interface.functions).forEach((t => {
						const e = this.interface.functions[t];
						if (i[t]) _n.warn(
							`Duplicate ABI entry for ${JSON.stringify(t)}`);
						else {
							i[t] = !0; {
								const r = e.name;
								n[`%${r}`] || (n[`%${r}`] = []), n[`%${r}`].push(t)
							}
							null == this[t] && jt(this, t, Pn(this, e, !0)), null ==
								this.functions[t] && jt(this.functions, t, Pn(this, e, !
									1)), null == this.callStatic[t] && jt(this
									.callStatic, t, Sn(this, e, !0)), null == this
								.populateTransaction[t] && jt(this.populateTransaction,
									t,
									function(t, e) {
										return function(...r) {
											return kn(t, e, r)
										}
									}(this, e)), null == this.estimateGas[t] && jt(this
									.estimateGas, t,
									function(t, e) {
										const r = t.signer || t.provider;
										return function(...n) {
											return En(this, void 0, void 0, (
												function*() {
													r || _n.throwError(
														"estimate require a provider or signer",
														S.errors
														.UNSUPPORTED_OPERATION, {
															operation: "estimateGas"
														});
													const i = yield kn(t, e,
														n);
													return yield r
														.estimateGas(i)
												}))
										}
									}(this, e))
						}
					})), Object.keys(n).forEach((t => {
						const e = n[t];
						if (e.length > 1) return;
						t = t.substring(1);
						const r = e[0];
						try {
							null == this[t] && jt(this, t, this[r])
						} catch (t) {}
						null == this.functions[t] && jt(this.functions, t, this
								.functions[r]), null == this.callStatic[t] && jt(this
								.callStatic, t, this.callStatic[r]), null == this
							.populateTransaction[t] && jt(this.populateTransaction, t,
								this.populateTransaction[r]), null == this.estimateGas[
								t] && jt(this.estimateGas, t, this.estimateGas[r])
					}))
				}
				static getContractAddress(t) {
					return xt(t)
				}
				static getInterface(t) {
					return ar.isInterface(t) ? t : new ar(t)
				}
				deployed() {
					return this._deployed()
				}
				_deployed(t) {
					return this._deployedPromise || (this.deployTransaction ? this
						._deployedPromise = this.deployTransaction.wait().then((() => this)) :
						this._deployedPromise = this.provider.getCode(this.address, t).then((
							t => ("0x" === t && _n.throwError("contract not deployed", S
								.errors.UNSUPPORTED_OPERATION, {
									contractAddress: this.address,
									operation: "getDeployed"
								}), this)))), this._deployedPromise
				}
				fallback(t) {
					this.signer || _n.throwError("sending a transactions require a signer", S.errors
						.UNSUPPORTED_OPERATION, {
							operation: "sendTransaction(fallback)"
						});
					const e = Dt(t || {});
					return ["from", "to"].forEach((function(t) {
						null != e[t] && _n.throwError("cannot override " + t, S.errors
							.UNSUPPORTED_OPERATION, {
								operation: t
							})
					})), e.to = this.resolvedAddress, this.deployed().then((() => this.signer
						.sendTransaction(e)))
				}
				connect(t) {
					"string" == typeof t && (t = new yr(t, this.provider));
					const e = new this.constructor(this.address, this.interface, t);
					return this.deployTransaction && jt(e, "deployTransaction", this
						.deployTransaction), e
				}
				attach(t) {
					return new this.constructor(t, this.interface, this.signer || this.provider)
				}
				static isIndexed(t) {
					return ir.isIndexed(t)
				}
				_normalizeRunningEvent(t) {
					return this._runningEvents[t.tag] ? this._runningEvents[t.tag] : t
				}
				_getRunningEvent(t) {
					if ("string" == typeof t) {
						if ("error" === t) return this._normalizeRunningEvent(new In);
						if ("event" === t) return this._normalizeRunningEvent(new On("event",
						null));
						if ("*" === t) return this._normalizeRunningEvent(new Rn(this.address, this
							.interface));
						const e = this.interface.getEvent(t);
						return this._normalizeRunningEvent(new Tn(this.address, this.interface, e))
					}
					if (t.topics && t.topics.length > 0) {
						try {
							const e = t.topics[0];
							if ("string" != typeof e) throw new Error("invalid topic");
							const r = this.interface.getEvent(e);
							return this._normalizeRunningEvent(new Tn(this.address, this.interface,
								r, t.topics))
						} catch (t) {}
						const e = {
							address: this.address,
							topics: t.topics
						};
						return this._normalizeRunningEvent(new On(Mn(e), e))
					}
					return this._normalizeRunningEvent(new Rn(this.address, this.interface))
				}
				_checkRunningEvents(t) {
					if (0 === t.listenerCount()) {
						delete this._runningEvents[t.tag];
						const e = this._wrappedEmits[t.tag];
						e && t.filter && (this.provider.off(t.filter, e), delete this._wrappedEmits[
							t.tag])
					}
				}
				_wrapEvent(t, e, r) {
					const n = Vt(e);
					return n.removeListener = () => {
							r && (t.removeListener(r), this._checkRunningEvents(t))
						}, n.getBlock = () => this.provider.getBlock(e.blockHash), n
						.getTransaction = () => this.provider.getTransaction(e.transactionHash), n
						.getTransactionReceipt = () => this.provider.getTransactionReceipt(e
							.transactionHash), t.prepareEvent(n), n
				}
				_addEventListener(t, e, r) {
					if (this.provider || _n.throwError(
							"events require a provider or a signer with a provider", S.errors
							.UNSUPPORTED_OPERATION, {
								operation: "once"
							}), t.addListener(e, r), this._runningEvents[t.tag] = t, !this
						._wrappedEmits[t.tag]) {
						const r = r => {
							let n = this._wrapEvent(t, r, e);
							if (null == n.decodeError) try {
								const e = t.getEmit(n);
								this.emit(t.filter, ...e)
							} catch (t) {
								n.decodeError = t.error
							}
							null != t.filter && this.emit("event", n), null != n.decodeError &&
								this.emit("error", n.decodeError, n)
						};
						this._wrappedEmits[t.tag] = r, null != t.filter && this.provider.on(t
							.filter, r)
					}
				}
				queryFilter(t, e, r) {
					const n = this._getRunningEvent(t),
						i = Dt(n.filter);
					return "string" == typeof e && j(e, 32) ? (null != r && _n.throwArgumentError(
							"cannot specify toBlock with blockhash", "toBlock", r), i
						.blockHash = e) : (i.fromBlock = null != e ? e : 0, i.toBlock = null !=
						r ? r : "latest"), this.provider.getLogs(i).then((t => t.map((t => this
						._wrapEvent(n, t, null)))))
				}
				on(t, e) {
					return this._addEventListener(this._getRunningEvent(t), e, !1), this
				}
				once(t, e) {
					return this._addEventListener(this._getRunningEvent(t), e, !0), this
				}
				emit(t, ...e) {
					if (!this.provider) return !1;
					const r = this._getRunningEvent(t),
						n = r.run(e) > 0;
					return this._checkRunningEvents(r), n
				}
				listenerCount(t) {
					return this.provider ? null == t ? Object.keys(this._runningEvents).reduce(((t,
							e) => t + this._runningEvents[e].listenerCount()), 0) : this
						._getRunningEvent(t).listenerCount() : 0
				}
				listeners(t) {
					if (!this.provider) return [];
					if (null == t) {
						const t = [];
						for (let e in this._runningEvents) this._runningEvents[e].listeners()
							.forEach((e => {
								t.push(e)
							}));
						return t
					}
					return this._getRunningEvent(t).listeners()
				}
				removeAllListeners(t) {
					if (!this.provider) return this;
					if (null == t) {
						for (const t in this._runningEvents) {
							const e = this._runningEvents[t];
							e.removeAllListeners(), this._checkRunningEvents(e)
						}
						return this
					}
					const e = this._getRunningEvent(t);
					return e.removeAllListeners(), this._checkRunningEvents(e), this
				}
				off(t, e) {
					if (!this.provider) return this;
					const r = this._getRunningEvent(t);
					return r.removeListener(e), this._checkRunningEvents(r), this
				}
				removeListener(t, e) {
					return this.off(t, e)
				}
			} {}
			const Bn = new S(J),
				Fn = {},
				jn = tt.from(0),
				Ln = tt.from(-1);

			function Un(t, e, r, n) {
				const i = {
					fault: e,
					operation: r
				};
				return void 0 !== n && (i.value = n), Bn.throwError(t, S.errors.NUMERIC_FAULT, i)
			}
			let Dn = "0";
			for (; Dn.length < 256;) Dn += Dn;

			function qn(t) {
				if ("number" != typeof t) try {
					t = tt.from(t).toNumber()
				} catch (t) {}
				return "number" == typeof t && t >= 0 && t <= 256 && !(t % 1) ? "1" + Dn.substring(0,
					t) : Bn.throwArgumentError("invalid decimal size", "decimals", t)
			}

			function zn(t, e) {
				null == e && (e = 0);
				const r = qn(e),
					n = (t = tt.from(t)).lt(jn);
				n && (t = t.mul(Ln));
				let i = t.mod(r).toString();
				for (; i.length < r.length - 1;) i = "0" + i;
				i = i.match(/^([0-9]*[1-9]|0)(0*)/)[1];
				const o = t.div(r).toString();
				return t = 1 === r.length ? o : o + "." + i, n && (t = "-" + t), t
			}

			function Gn(t, e) {
				null == e && (e = 0);
				const r = qn(e);
				"string" == typeof t && t.match(/^-?[0-9.]+$/) || Bn.throwArgumentError(
					"invalid decimal value", "value", t);
				const n = "-" === t.substring(0, 1);
				n && (t = t.substring(1)), "." === t && Bn.throwArgumentError("missing value", "value",
					t);
				const i = t.split(".");
				i.length > 2 && Bn.throwArgumentError("too many decimal points", "value", t);
				let o = i[0],
					s = i[1];
				for (o || (o = "0"), s || (s = "0");
					"0" === s[s.length - 1];) s = s.substring(0, s.length - 1);
				for (s.length > r.length - 1 && Un("fractional component exceeds decimals", "underflow",
						"parseFixed"), "" === s && (s = "0"); s.length < r.length - 1;) s += "0";
				const a = tt.from(o),
					u = tt.from(s);
				let c = a.mul(r).add(u);
				return n && (c = c.mul(Ln)), c
			}
			class Vn {
				constructor(t, e, r, n) {
					t !== Fn && Bn.throwError(
							"cannot use FixedFormat constructor; use FixedFormat.from", S.errors
							.UNSUPPORTED_OPERATION, {
								operation: "new FixedFormat"
							}), this.signed = e, this.width = r, this.decimals = n, this.name = (e ?
							"" : "u") + "fixed" + String(r) + "x" + String(n), this._multiplier =
						qn(n), Object.freeze(this)
				}
				static from(t) {
					if (t instanceof Vn) return t;
					"number" == typeof t && (t = `fixed128x${t}`);
					let e = !0,
						r = 128,
						n = 18;
					if ("string" == typeof t)
						if ("fixed" === t);
						else if ("ufixed" === t) e = !1;
					else {
						const i = t.match(/^(u?)fixed([0-9]+)x([0-9]+)$/);
						i || Bn.throwArgumentError("invalid fixed format", "format", t), e = "u" !==
							i[1], r = parseInt(i[2]), n = parseInt(i[3])
					} else if (t) {
						const i = (e, r, n) => null == t[e] ? n : (typeof t[e] !== r && Bn
							.throwArgumentError("invalid fixed format (" + e + " not " + r +
								")", "format." + e, t[e]), t[e]);
						e = i("signed", "boolean", e), r = i("width", "number", r), n = i(
							"decimals", "number", n)
					}
					return r % 8 && Bn.throwArgumentError(
							"invalid fixed format width (not byte aligned)", "format.width", r), n >
						80 && Bn.throwArgumentError("invalid fixed format (decimals too large)",
							"format.decimals", n), new Vn(Fn, e, r, n)
				}
			}
			class Hn {
				constructor(t, e, r, n) {
					Bn.checkNew(new.target, Hn), t !== Fn && Bn.throwError(
							"cannot use FixedNumber constructor; use FixedNumber.from", S.errors
							.UNSUPPORTED_OPERATION, {
								operation: "new FixedFormat"
							}), this.format = n, this._hex = e, this._value = r, this
						._isFixedNumber = !0, Object.freeze(this)
				}
				_checkFormat(t) {
					this.format.name !== t.format.name && Bn.throwArgumentError(
						"incompatible format; use fixedNumber.toFormat", "other", t)
				}
				addUnsafe(t) {
					this._checkFormat(t);
					const e = Gn(this._value, this.format.decimals),
						r = Gn(t._value, t.format.decimals);
					return Hn.fromValue(e.add(r), this.format.decimals, this.format)
				}
				subUnsafe(t) {
					this._checkFormat(t);
					const e = Gn(this._value, this.format.decimals),
						r = Gn(t._value, t.format.decimals);
					return Hn.fromValue(e.sub(r), this.format.decimals, this.format)
				}
				mulUnsafe(t) {
					this._checkFormat(t);
					const e = Gn(this._value, this.format.decimals),
						r = Gn(t._value, t.format.decimals);
					return Hn.fromValue(e.mul(r).div(this.format._multiplier), this.format.decimals,
						this.format)
				}
				divUnsafe(t) {
					this._checkFormat(t);
					const e = Gn(this._value, this.format.decimals),
						r = Gn(t._value, t.format.decimals);
					return Hn.fromValue(e.mul(this.format._multiplier).div(r), this.format.decimals,
						this.format)
				}
				floor() {
					const t = this.toString().split(".");
					1 === t.length && t.push("0");
					let e = Hn.from(t[0], this.format);
					const r = !t[1].match(/^(0*)$/);
					return this.isNegative() && r && (e = e.subUnsafe($n.toFormat(e.format))), e
				}
				ceiling() {
					const t = this.toString().split(".");
					1 === t.length && t.push("0");
					let e = Hn.from(t[0], this.format);
					const r = !t[1].match(/^(0*)$/);
					return !this.isNegative() && r && (e = e.addUnsafe($n.toFormat(e.format))), e
				}
				round(t) {
					null == t && (t = 0);
					const e = this.toString().split(".");
					if (1 === e.length && e.push("0"), (t < 0 || t > 80 || t % 1) && Bn
						.throwArgumentError("invalid decimal count", "decimals", t), e[1].length <=
						t) return this;
					const r = Hn.from("1" + Dn.substring(0, t), this.format),
						n = Wn.toFormat(this.format);
					return this.mulUnsafe(r).addUnsafe(n).floor().divUnsafe(r)
				}
				isZero() {
					return "0.0" === this._value || "0" === this._value
				}
				isNegative() {
					return "-" === this._value[0]
				}
				toString() {
					return this._value
				}
				toHexString(t) {
					if (null == t) return this._hex;
					t % 8 && Bn.throwArgumentError("invalid byte width", "width", t);
					return V(tt.from(this._hex).fromTwos(this.format.width).toTwos(t).toHexString(),
						t / 8)
				}
				toUnsafeFloat() {
					return parseFloat(this.toString())
				}
				toFormat(t) {
					return Hn.fromString(this._value, t)
				}
				static fromValue(t, e, r) {
					return null != r || null == e || function(t) {
							return null != t && (tt.isBigNumber(t) || "number" == typeof t && t %
								1 == 0 || "string" == typeof t && !!t.match(/^-?[0-9]+$/) || j(
									t) || "bigint" == typeof t || R(t))
						}(e) || (r = e, e = null), null == e && (e = 0), null == r && (r = "fixed"),
						Hn.fromString(zn(t, e), Vn.from(r))
				}
				static fromString(t, e) {
					null == e && (e = "fixed");
					const r = Vn.from(e),
						n = Gn(t, r.decimals);
					!r.signed && n.lt(jn) && Un("unsigned value cannot be negative", "overflow",
						"value", t);
					let i = null;
					r.signed ? i = n.toTwos(r.width).toHexString() : (i = n.toHexString(), i = V(i,
						r.width / 8));
					const o = zn(n, r.decimals);
					return new Hn(Fn, i, o, r)
				}
				static fromBytes(t, e) {
					null == e && (e = "fixed");
					const r = Vn.from(e);
					if (C(t).length > r.width / 8) throw new Error("overflow");
					let n = tt.from(t);
					r.signed && (n = n.fromTwos(r.width));
					const i = n.toTwos((r.signed ? 0 : 1) + r.width).toHexString(),
						o = zn(n, r.decimals);
					return new Hn(Fn, i, o, r)
				}
				static from(t, e) {
					if ("string" == typeof t) return Hn.fromString(t, e);
					if (R(t)) return Hn.fromBytes(t, e);
					try {
						return Hn.fromValue(t, 0, e)
					} catch (t) {
						if (t.code !== S.errors.INVALID_ARGUMENT) throw t
					}
					return Bn.throwArgumentError("invalid FixedNumber value", "value", t)
				}
				static isFixedNumber(t) {
					return !(!t || !t._isFixedNumber)
				}
			}
			const $n = Hn.from(1),
				Wn = Hn.from("0.5"),
				Jn = new S("units/5.6.0"),
				Xn = ["wei", "kwei", "mwei", "gwei", "szabo", "finney", "ether"];

			function Kn(t) {
				return function(t, e) {
					if ("string" != typeof t && Jn.throwArgumentError("value must be a string",
							"value", t), "string" == typeof e) {
						const t = Xn.indexOf(e); - 1 !== t && (e = 3 * t)
					}
					return Gn(t, null != e ? e : 18)
				}(t, 18)
			}
			const Zn = "hash/5.6.0";
			var Qn = function(t, e, r, n) {
				return new(r || (r = Promise))((function(i, o) {
					function s(t) {
						try {
							u(n.next(t))
						} catch (t) {
							o(t)
						}
					}

					function a(t) {
						try {
							u(n.throw(t))
						} catch (t) {
							o(t)
						}
					}

					function u(t) {
						var e;
						t.done ? i(t.value) : (e = t.value, e instanceof r ? e : new r((
							function(t) {
								t(e)
							}))).then(s, a)
					}
					u((n = n.apply(t, e || [])).next())
				}))
			};
			const Yn = new S(Zn),
				ti = new Uint8Array(32);
			ti.fill(0);
			const ei = tt.from(-1),
				ri = tt.from(0),
				ni = tt.from(1),
				ii = tt.from("0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff");
			const oi = V(ni.toHexString(), 32),
				si = V(ri.toHexString(), 32),
				ai = {
					name: "string",
					version: "string",
					chainId: "uint256",
					verifyingContract: "address",
					salt: "bytes32"
				},
				ui = ["name", "version", "chainId", "verifyingContract", "salt"];

			function ci(t) {
				return function(e) {
					return "string" != typeof e && Yn.throwArgumentError(
						`invalid domain value for ${JSON.stringify(t)}`, `domain.${t}`, e), e
				}
			}
			const li = {
				name: ci("name"),
				version: ci("version"),
				chainId: function(t) {
					try {
						return tt.from(t).toString()
					} catch (t) {}
					return Yn.throwArgumentError('invalid domain value for "chainId"',
						"domain.chainId", t)
				},
				verifyingContract: function(t) {
					try {
						return _t(t).toLowerCase()
					} catch (t) {}
					return Yn.throwArgumentError('invalid domain value "verifyingContract"',
						"domain.verifyingContract", t)
				},
				salt: function(t) {
					try {
						const e = C(t);
						if (32 !== e.length) throw new Error("bad length");
						return U(e)
					} catch (t) {}
					return Yn.throwArgumentError('invalid domain value "salt"', "domain.salt",
						t)
				}
			};

			function hi(t) {
				{
					const e = t.match(/^(u?)int(\d*)$/);
					if (e) {
						const r = "" === e[1],
							n = parseInt(e[2] || "256");
						(n % 8 != 0 || n > 256 || e[2] && e[2] !== String(n)) && Yn.throwArgumentError(
							"invalid numeric width", "type", t);
						const i = ii.mask(r ? n - 1 : n),
							o = r ? i.add(ni).mul(ei) : ri;
						return function(e) {
							const r = tt.from(e);
							return (r.lt(o) || r.gt(i)) && Yn.throwArgumentError(
								`value out-of-bounds for ${t}`, "value", e), V(r.toTwos(256)
								.toHexString(), 32)
						}
					}
				} {
					const e = t.match(/^bytes(\d+)$/);
					if (e) {
						const r = parseInt(e[1]);
						return (0 === r || r > 32 || e[1] !== String(r)) && Yn.throwArgumentError(
								"invalid bytes width", "type", t),
							function(e) {
								return C(e).length !== r && Yn.throwArgumentError(
										`invalid length for ${t}`, "value", e),
									function(t) {
										const e = C(t),
											r = e.length % 32;
										return r ? z([e, ti.slice(r)]) : U(e)
									}(e)
							}
					}
				}
				switch (t) {
					case "address":
						return function(t) {
							return V(_t(t), 32)
						};
					case "bool":
						return function(t) {
							return t ? oi : si
						};
					case "bytes":
						return function(t) {
							return at(t)
						};
					case "string":
						return function(t) {
							return ae(t)
						}
				}
				return null
			}

			function fi(t, e) {
				return `${t}(${e.map((({name:t,type:e})=>e+" "+t)).join(",")})`
			}
			class di {
				constructor(t) {
					jt(this, "types", Object.freeze(Vt(t))), jt(this, "_encoderCache", {}), jt(this,
						"_types", {});
					const e = {},
						r = {},
						n = {};
					Object.keys(t).forEach((t => {
						e[t] = {}, r[t] = [], n[t] = {}
					}));
					for (const n in t) {
						const i = {};
						t[n].forEach((o => {
							i[o.name] && Yn.throwArgumentError(
								`duplicate variable name ${JSON.stringify(o.name)} in ${JSON.stringify(n)}`,
								"types", t), i[o.name] = !0;
							const s = o.type.match(/^([^\x5b]*)(\x5b|$)/)[1];
							s === n && Yn.throwArgumentError(
								`circular type reference to ${JSON.stringify(s)}`,
								"types", t);
							hi(s) || (r[s] || Yn.throwArgumentError(
									`unknown type ${JSON.stringify(s)}`, "types", t
									), r[s].push(n), e[n][s] = !0)
						}))
					}
					const i = Object.keys(r).filter((t => 0 === r[t].length));
					0 === i.length ? Yn.throwArgumentError("missing primary type", "types", t) : i
						.length > 1 && Yn.throwArgumentError(
							`ambiguous primary types or unused types: ${i.map((t=>JSON.stringify(t))).join(", ")}`,
							"types", t), jt(this, "primaryType", i[0]),
						function i(o, s) {
							s[o] && Yn.throwArgumentError(
									`circular type reference to ${JSON.stringify(o)}`, "types", t),
								s[o] = !0, Object.keys(e[o]).forEach((t => {
									r[t] && (i(t, s), Object.keys(s).forEach((e => {
										n[e][t] = !0
									})))
								})), delete s[o]
						}(this.primaryType, {});
					for (const e in n) {
						const r = Object.keys(n[e]);
						r.sort(), this._types[e] = fi(e, t[e]) + r.map((e => fi(e, t[e]))).join("")
					}
				}
				getEncoder(t) {
					let e = this._encoderCache[t];
					return e || (e = this._encoderCache[t] = this._getEncoder(t)), e
				}
				_getEncoder(t) {
					{
						const e = hi(t);
						if (e) return e
					}
					const e = t.match(/^(.*)(\x5b(\d*)\x5d)$/);
					if (e) {
						const t = e[1],
							r = this.getEncoder(t),
							n = parseInt(e[3]);
						return e => {
							n >= 0 && e.length !== n && Yn.throwArgumentError(
								"array length mismatch; expected length ${ arrayLength }",
								"value", e);
							let i = e.map(r);
							return this._types[t] && (i = i.map(at)), at(z(i))
						}
					}
					const r = this.types[t];
					if (r) {
						const e = ae(this._types[t]);
						return t => {
							const n = r.map((({
								name: e,
								type: r
							}) => {
								const n = this.getEncoder(r)(t[e]);
								return this._types[r] ? at(n) : n
							}));
							return n.unshift(e), z(n)
						}
					}
					return Yn.throwArgumentError(`unknown type: ${t}`, "type", t)
				}
				encodeType(t) {
					const e = this._types[t];
					return e || Yn.throwArgumentError(`unknown type: ${JSON.stringify(t)}`, "name",
						t), e
				}
				encodeData(t, e) {
					return this.getEncoder(t)(e)
				}
				hashStruct(t, e) {
					return at(this.encodeData(t, e))
				}
				encode(t) {
					return this.encodeData(this.primaryType, t)
				}
				hash(t) {
					return this.hashStruct(this.primaryType, t)
				}
				_visit(t, e, r) {
					if (hi(t)) return r(t, e);
					const n = t.match(/^(.*)(\x5b(\d*)\x5d)$/);
					if (n) {
						const t = n[1],
							i = parseInt(n[3]);
						return i >= 0 && e.length !== i && Yn.throwArgumentError(
							"array length mismatch; expected length ${ arrayLength }", "value",
							e), e.map((e => this._visit(t, e, r)))
					}
					const i = this.types[t];
					return i ? i.reduce(((t, {
						name: n,
						type: i
					}) => (t[n] = this._visit(i, e[n], r), t)), {}) : Yn.throwArgumentError(
						`unknown type: ${t}`, "type", t)
				}
				visit(t, e) {
					return this._visit(this.primaryType, t, e)
				}
				static from(t) {
					return new di(t)
				}
				static getPrimaryType(t) {
					return di.from(t).primaryType
				}
				static hashStruct(t, e, r) {
					return di.from(e).hashStruct(t, r)
				}
				static hashDomain(t) {
					const e = [];
					for (const r in t) {
						const n = ai[r];
						n || Yn.throwArgumentError(
								`invalid typed-data domain key: ${JSON.stringify(r)}`, "domain", t),
							e.push({
								name: r,
								type: n
							})
					}
					return e.sort(((t, e) => ui.indexOf(t.name) - ui.indexOf(e.name))), di
						.hashStruct("EIP712Domain", {
							EIP712Domain: e
						}, t)
				}
				static encode(t, e, r) {
					return z(["0x1901", di.hashDomain(t), di.from(e).hash(r)])
				}
				static hash(t, e, r) {
					return at(di.encode(t, e, r))
				}
				static resolveNames(t, e, r, n) {
					return Qn(this, void 0, void 0, (function*() {
						t = Dt(t);
						const i = {};
						t.verifyingContract && !j(t.verifyingContract, 20) && (i[t
							.verifyingContract] = "0x");
						const o = di.from(e);
						o.visit(r, ((t, e) => ("address" !== t || j(e, 20) || (i[e] =
							"0x"), e)));
						for (const t in i) i[t] = yield n(t);
						return t.verifyingContract && i[t.verifyingContract] && (t
								.verifyingContract = i[t.verifyingContract]), r = o
							.visit(r, ((t, e) => "address" === t && i[e] ? i[e] : e)), {
								domain: t,
								value: r
							}
					}))
				}
				static getPayload(t, e, r) {
					di.hashDomain(t);
					const n = {},
						i = [];
					ui.forEach((e => {
						const r = t[e];
						null != r && (n[e] = li[e](r), i.push({
							name: e,
							type: ai[e]
						}))
					}));
					const o = di.from(e),
						s = Dt(e);
					return s.EIP712Domain ? Yn.throwArgumentError(
							"types must not contain EIP712Domain type", "types.EIP712Domain", e) : s
						.EIP712Domain = i, o.encode(r), {
							types: s,
							domain: n,
							primaryType: o.primaryType,
							message: o.visit(r, ((t, e) => {
								if (t.match(/^bytes(\d*)/)) return U(C(e));
								if (t.match(/^u?int/)) return tt.from(e).toString();
								switch (t) {
									case "address":
										return e.toLowerCase();
									case "bool":
										return !!e;
									case "string":
										return "string" != typeof e && Yn
											.throwArgumentError("invalid string",
												"value", e), e
								}
								return Yn.throwArgumentError("unsupported type", "type",
									t)
							}))
						}
				}
			}

			function pi(t) {
				t = atob(t);
				const e = [];
				for (let r = 0; r < t.length; r++) e.push(t.charCodeAt(r));
				return C(e)
			}

			function mi(t) {
				t = C(t);
				let e = "";
				for (let r = 0; r < t.length; r++) e += String.fromCharCode(t[r]);
				return btoa(e)
			}
			var gi = function(t, e, r, n) {
				return new(r || (r = Promise))((function(i, o) {
					function s(t) {
						try {
							u(n.next(t))
						} catch (t) {
							o(t)
						}
					}

					function a(t) {
						try {
							u(n.throw(t))
						} catch (t) {
							o(t)
						}
					}

					function u(t) {
						var e;
						t.done ? i(t.value) : (e = t.value, e instanceof r ? e : new r((
							function(t) {
								t(e)
							}))).then(s, a)
					}
					u((n = n.apply(t, e || [])).next())
				}))
			};

			function yi(t, e) {
				return gi(this, void 0, void 0, (function*() {
					null == e && (e = {});
					const r = {
						method: e.method || "GET",
						headers: e.headers || {},
						body: e.body || void 0
					};
					!0 !== e.skipFetchSetup && (r.mode = "cors", r.cache = "no-cache", r
						.credentials = "same-origin", r.redirect = "follow", r
						.referrer = "client");
					const n = yield fetch(t, r), i = yield n.arrayBuffer(), o = {};
					return n.headers.forEach ? n.headers.forEach(((t, e) => {
						o[e.toLowerCase()] = t
					})) : n.headers.keys().forEach((t => {
						o[t.toLowerCase()] = n.headers.get(t)
					})), {
						headers: o,
						statusCode: n.status,
						statusMessage: n.statusText,
						body: C(new Uint8Array(i))
					}
				}))
			}
			var vi = function(t, e, r, n) {
				return new(r || (r = Promise))((function(i, o) {
					function s(t) {
						try {
							u(n.next(t))
						} catch (t) {
							o(t)
						}
					}

					function a(t) {
						try {
							u(n.throw(t))
						} catch (t) {
							o(t)
						}
					}

					function u(t) {
						var e;
						t.done ? i(t.value) : (e = t.value, e instanceof r ? e : new r((
							function(t) {
								t(e)
							}))).then(s, a)
					}
					u((n = n.apply(t, e || [])).next())
				}))
			};
			const bi = new S("web/5.6.0");

			function wi(t) {
				return new Promise((e => {
					setTimeout(e, t)
				}))
			}

			function Ei(t, e) {
				if (null == t) return null;
				if ("string" == typeof t) return t;
				if (I(t)) {
					if (e && ("text" === e.split("/")[0] || "application/json" === e.split(";")[0]
						.trim())) try {
						return oe(t)
					} catch (t) {}
					return U(t)
				}
				return t
			}

			function _i(t, e, r) {
				let n = null;
				if (null != e) {
					n = ne(e);
					const r = "string" == typeof t ? {
						url: t
					} : Dt(t);
					if (r.headers) {
						0 !== Object.keys(r.headers).filter((t => "content-type" === t.toLowerCase()))
							.length || (r.headers = Dt(r.headers), r.headers["content-type"] =
								"application/json")
					} else r.headers = {
						"content-type": "application/json"
					};
					t = r
				}
				return function(t, e, r) {
					const n = "object" == typeof t && null != t.throttleLimit ? t.throttleLimit :
					12;
					bi.assertArgument(n > 0 && n % 1 == 0, "invalid connection throttle limit",
						"connection.throttleLimit", n);
					const i = "object" == typeof t ? t.throttleCallback : null,
						o = "object" == typeof t && "number" == typeof t.throttleSlotInterval ? t
						.throttleSlotInterval : 100;
					bi.assertArgument(o > 0 && o % 1 == 0,
						"invalid connection throttle slot interval",
						"connection.throttleSlotInterval", o);
					const s = "object" == typeof t && !!t.errorPassThrough,
						a = {};
					let u = null;
					const c = {
						method: "GET"
					};
					let l = !1,
						h = 12e4;
					if ("string" == typeof t) u = t;
					else if ("object" == typeof t) {
						if (null != t && null != t.url || bi.throwArgumentError("missing URL",
								"connection.url", t), u = t.url, "number" == typeof t.timeout && t
							.timeout > 0 && (h = t.timeout), t.headers)
							for (const e in t.headers) a[e.toLowerCase()] = {
									key: e,
									value: String(t.headers[e])
								}, ["if-none-match", "if-modified-since"].indexOf(e
							.toLowerCase()) >= 0 && (l = !0);
						if (c.allowGzip = !!t.allowGzip, null != t.user && null != t.password) {
							"https:" !== u.substring(0, 6) && !0 !== t
								.allowInsecureAuthentication && bi.throwError(
									"basic authentication requires a secure https url", S.errors
									.INVALID_ARGUMENT, {
										argument: "url",
										url: u,
										user: t.user,
										password: "[REDACTED]"
									});
							const e = t.user + ":" + t.password;
							a.authorization = {
								key: "Authorization",
								value: "Basic " + mi(ne(e))
							}
						}
						null != t.skipFetchSetup && (c.skipFetchSetup = !!t.skipFetchSetup)
					}
					const f = new RegExp("^data:([a-z0-9-]+/[a-z0-9-]+);base64,(.*)$", "i"),
						d = u ? u.match(f) : null;
					if (d) try {
						const t = {
							statusCode: 200,
							statusMessage: "OK",
							headers: {
								"content-type": d[1]
							},
							body: pi(d[2])
						};
						let e = t.body;
						return r && (e = r(t.body, t)), Promise.resolve(e)
					} catch (t) {
						bi.throwError("processing response error", S.errors.SERVER_ERROR, {
							body: Ei(d[1], d[2]),
							error: t,
							requestBody: null,
							requestMethod: "GET",
							url: u
						})
					}
					e && (c.method = "POST", c.body = e, null == a["content-type"] && (a[
						"content-type"] = {
						key: "Content-Type",
						value: "application/octet-stream"
					}), null == a["content-length"] && (a["content-length"] = {
						key: "Content-Length",
						value: String(e.length)
					}));
					const p = {};
					Object.keys(a).forEach((t => {
						const e = a[t];
						p[e.key] = e.value
					})), c.headers = p;
					const m = function() {
							let t = null;
							return {
								promise: new Promise((function(e, r) {
									h && (t = setTimeout((() => {
										null != t && (t = null, r(bi
											.makeError(
												"timeout", S
												.errors
												.TIMEOUT, {
													requestBody: Ei(
														c
														.body,
														p[
															"content-type"]
														),
													requestMethod: c
														.method,
													timeout: h,
													url: u
												})))
									}), h))
								})),
								cancel: function() {
									null != t && (clearTimeout(t), t = null)
								}
							}
						}(),
						g = function() {
							return vi(this, void 0, void 0, (function*() {
								for (let t = 0; t < n; t++) {
									let e = null;
									try {
										if (e = yield yi(u, c), t < n)
											if (301 === e.statusCode || 302 === e
												.statusCode) {
												const t = e.headers.location || "";
												if ("GET" === c.method && t.match(
														/^https:/)) {
													u = e.headers.location;
													continue
												}
											} else if (429 === e.statusCode) {
											let r = !0;
											if (i && (r = yield i(t, u)), r) {
												let r = 0;
												const n = e.headers["retry-after"];
												r = "string" == typeof n && n.match(
														/^[1-9][0-9]*$/) ? 1e3 *
													parseInt(n) : o * parseInt(String(
														Math.random() * Math.pow(2,
															t))), yield wi(r);
												continue
											}
										}
									} catch (t) {
										e = t.response, null == e && (m.cancel(), bi
											.throwError("missing response", S.errors
												.SERVER_ERROR, {
													requestBody: Ei(c.body, p[
														"content-type"]),
													requestMethod: c.method,
													serverError: t,
													url: u
												}))
									}
									let a = e.body;
									if (l && 304 === e.statusCode ? a = null : !s && (e
											.statusCode < 200 || e.statusCode >= 300) &&
										(m.cancel(), bi.throwError("bad response", S
											.errors.SERVER_ERROR, {
												status: e.statusCode,
												headers: e.headers,
												body: Ei(a, e.headers ? e.headers[
													"content-type"] : null),
												requestBody: Ei(c.body, p[
													"content-type"]),
												requestMethod: c.method,
												url: u
											})), r) try {
										const t = yield r(a, e);
										return m.cancel(), t
									} catch (r) {
										if (r.throttleRetry && t < n) {
											let e = !0;
											if (i && (e = yield i(t, u)), e) {
												const e = o * parseInt(String(Math
													.random() * Math.pow(2,
														t)));
												yield wi(e);
												continue
											}
										}
										m.cancel(), bi.throwError(
											"processing response error", S
											.errors.SERVER_ERROR, {
												body: Ei(a, e.headers ? e
													.headers[
													"content-type"] : null),
												error: r,
												requestBody: Ei(c.body, p[
													"content-type"]),
												requestMethod: c.method,
												url: u
											})
									}
									return m.cancel(), a
								}
								return bi.throwError("failed response", S.errors
									.SERVER_ERROR, {
										requestBody: Ei(c.body, p["content-type"]),
										requestMethod: c.method,
										url: u
									})
							}))
						}();
					return Promise.race([m.promise, g])
				}(t, n, ((t, e) => {
					let n = null;
					if (null != t) try {
						n = JSON.parse(oe(t))
					} catch (e) {
						bi.throwError("invalid JSON", S.errors.SERVER_ERROR, {
							body: t,
							error: e
						})
					}
					return r && (n = r(n, e)), n
				}))
			}

			function xi(t, e) {
				return e || (e = {}), null == (e = Dt(e)).floor && (e.floor = 0), null == e.ceiling && (
					e.ceiling = 1e4), null == e.interval && (e.interval = 250), new Promise((
					function(r, n) {
						let i = null,
							o = !1;
						const s = () => !o && (o = !0, i && clearTimeout(i), !0);
						e.timeout && (i = setTimeout((() => {
							s() && n(new Error("timeout"))
						}), e.timeout));
						const a = e.retryLimit;
						let u = 0;
						! function i() {
							return t().then((function(t) {
								if (void 0 !== t) s() && r(t);
								else if (e.oncePoll) e.oncePoll.once("poll", i);
								else if (e.onceBlock) e.onceBlock.once("block", i);
								else if (!o) {
									if (u++, u > a) return void(s() && n(new Error(
										"retry limit reached")));
									let t = e.interval * parseInt(String(Math
										.random() * Math.pow(2, u)));
									t < e.floor && (t = e.floor), t > e.ceiling && (
										t = e.ceiling), setTimeout(i, t)
								}
								return null
							}), (function(t) {
								s() && n(t)
							}))
						}()
					}))
			}
			const Ai = "providers/5.6.2";
			class ki {
				constructor(t) {
					jt(this, "alphabet", t), jt(this, "base", t.length), jt(this,
						"_alphabetMap", {}), jt(this, "_leader", t.charAt(0));
					for (let e = 0; e < t.length; e++) this._alphabetMap[t.charAt(e)] = e
				}
				encode(t) {
					let e = C(t);
					if (0 === e.length) return "";
					let r = [0];
					for (let t = 0; t < e.length; ++t) {
						let n = e[t];
						for (let t = 0; t < r.length; ++t) n += r[t] << 8, r[t] = n % this.base, n =
							n / this.base | 0;
						for (; n > 0;) r.push(n % this.base), n = n / this.base | 0
					}
					let n = "";
					for (let t = 0; 0 === e[t] && t < e.length - 1; ++t) n += this._leader;
					for (let t = r.length - 1; t >= 0; --t) n += this.alphabet[r[t]];
					return n
				}
				decode(t) {
					if ("string" != typeof t) throw new TypeError("Expected String");
					let e = [];
					if (0 === t.length) return new Uint8Array(e);
					e.push(0);
					for (let r = 0; r < t.length; r++) {
						let n = this._alphabetMap[t[r]];
						if (void 0 === n) throw new Error("Non-base" + this.base + " character");
						let i = n;
						for (let t = 0; t < e.length; ++t) i += e[t] * this.base, e[t] = 255 & i,
							i >>= 8;
						for (; i > 0;) e.push(255 & i), i >>= 8
					}
					for (let r = 0; t[r] === this._leader && r < t.length - 1; ++r) e.push(0);
					return C(new Uint8Array(e.reverse()))
				}
			}
			new ki("abcdefghijklmnopqrstuvwxyz234567");
			const Ni = new ki("123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz");

			function Si(t, e) {
				e || (e = function(t) {
					return [parseInt(t, 16)]
				});
				let r = 0,
					n = {};
				return t.split(",").forEach((t => {
					let i = t.split(":");
					r += parseInt(i[0], 16), n[r] = e(i[1])
				})), n
			}

			function Pi(t) {
				let e = 0;
				return t.split(",").map((t => {
					let r = t.split("-");
					1 === r.length ? r[1] = "0" : "" === r[1] && (r[1] = "1");
					let n = e + parseInt(r[0], 16);
					return e = parseInt(r[1], 16), {
						l: n,
						h: e
					}
				}))
			}

			function Mi(t, e) {
				let r = 0;
				for (let n = 0; n < e.length; n++) {
					let i = e[n];
					if (r += i.l, t >= r && t <= r + i.h && (t - r) % (i.d || 1) == 0) {
						if (i.e && -1 !== i.e.indexOf(t - r)) continue;
						return i
					}
				}
				return null
			}
			const Oi = Pi(
					"221,13-1b,5f-,40-10,51-f,11-3,3-3,2-2,2-4,8,2,15,2d,28-8,88,48,27-,3-5,11-20,27-,8,28,3-5,12,18,b-a,1c-4,6-16,2-d,2-2,2,1b-4,17-9,8f-,10,f,1f-2,1c-34,33-14e,4,36-,13-,6-2,1a-f,4,9-,3-,17,8,2-2,5-,2,8-,3-,4-8,2-3,3,6-,16-6,2-,7-3,3-,17,8,3,3,3-,2,6-3,3-,4-a,5,2-6,10-b,4,8,2,4,17,8,3,6-,b,4,4-,2-e,2-4,b-10,4,9-,3-,17,8,3-,5-,9-2,3-,4-7,3-3,3,4-3,c-10,3,7-2,4,5-2,3,2,3-2,3-2,4-2,9,4-3,6-2,4,5-8,2-e,d-d,4,9,4,18,b,6-3,8,4,5-6,3-8,3-3,b-11,3,9,4,18,b,6-3,8,4,5-6,3-6,2,3-3,b-11,3,9,4,18,11-3,7-,4,5-8,2-7,3-3,b-11,3,13-2,19,a,2-,8-2,2-3,7,2,9-11,4-b,3b-3,1e-24,3,2-,3,2-,2-5,5,8,4,2,2-,3,e,4-,6,2,7-,b-,3-21,49,23-5,1c-3,9,25,10-,2-2f,23,6,3,8-2,5-5,1b-45,27-9,2a-,2-3,5b-4,45-4,53-5,8,40,2,5-,8,2,5-,28,2,5-,20,2,5-,8,2,5-,8,8,18,20,2,5-,8,28,14-5,1d-22,56-b,277-8,1e-2,52-e,e,8-a,18-8,15-b,e,4,3-b,5e-2,b-15,10,b-5,59-7,2b-555,9d-3,5b-5,17-,7-,27-,7-,9,2,2,2,20-,36,10,f-,7,14-,4,a,54-3,2-6,6-5,9-,1c-10,13-1d,1c-14,3c-,10-6,32-b,240-30,28-18,c-14,a0,115-,3,66-,b-76,5,5-,1d,24,2,5-2,2,8-,35-2,19,f-10,1d-3,311-37f,1b,5a-b,d7-19,d-3,41,57-,68-4,29-3,5f,29-37,2e-2,25-c,2c-2,4e-3,30,78-3,64-,20,19b7-49,51a7-59,48e-2,38-738,2ba5-5b,222f-,3c-94,8-b,6-4,1b,6,2,3,3,6d-20,16e-f,41-,37-7,2e-2,11-f,5-b,18-,b,14,5-3,6,88-,2,bf-2,7-,7-,7-,4-2,8,8-9,8-2ff,20,5-b,1c-b4,27-,27-cbb1,f7-9,28-2,b5-221,56,48,3-,2-,3-,5,d,2,5,3,42,5-,9,8,1d,5,6,2-2,8,153-3,123-3,33-27fd,a6da-5128,21f-5df,3-fffd,3-fffd,3-fffd,3-fffd,3-fffd,3-fffd,3-fffd,3-fffd,3-fffd,3-fffd,3-fffd,3,2-1d,61-ff7d"
					),
				Ii = "ad,34f,1806,180b,180c,180d,200b,200c,200d,2060,feff".split(",").map((t =>
					parseInt(t, 16))),
				Ti = [{
					h: 25,
					s: 32,
					l: 65
				}, {
					h: 30,
					s: 32,
					e: [23],
					l: 127
				}, {
					h: 54,
					s: 1,
					e: [48],
					l: 64,
					d: 2
				}, {
					h: 14,
					s: 1,
					l: 57,
					d: 2
				}, {
					h: 44,
					s: 1,
					l: 17,
					d: 2
				}, {
					h: 10,
					s: 1,
					e: [2, 6, 8],
					l: 61,
					d: 2
				}, {
					h: 16,
					s: 1,
					l: 68,
					d: 2
				}, {
					h: 84,
					s: 1,
					e: [18, 24, 66],
					l: 19,
					d: 2
				}, {
					h: 26,
					s: 32,
					e: [17],
					l: 435
				}, {
					h: 22,
					s: 1,
					l: 71,
					d: 2
				}, {
					h: 15,
					s: 80,
					l: 40
				}, {
					h: 31,
					s: 32,
					l: 16
				}, {
					h: 32,
					s: 1,
					l: 80,
					d: 2
				}, {
					h: 52,
					s: 1,
					l: 42,
					d: 2
				}, {
					h: 12,
					s: 1,
					l: 55,
					d: 2
				}, {
					h: 40,
					s: 1,
					e: [38],
					l: 15,
					d: 2
				}, {
					h: 14,
					s: 1,
					l: 48,
					d: 2
				}, {
					h: 37,
					s: 48,
					l: 49
				}, {
					h: 148,
					s: 1,
					l: 6351,
					d: 2
				}, {
					h: 88,
					s: 1,
					l: 160,
					d: 2
				}, {
					h: 15,
					s: 16,
					l: 704
				}, {
					h: 25,
					s: 26,
					l: 854
				}, {
					h: 25,
					s: 32,
					l: 55915
				}, {
					h: 37,
					s: 40,
					l: 1247
				}, {
					h: 25,
					s: -119711,
					l: 53248
				}, {
					h: 25,
					s: -119763,
					l: 52
				}, {
					h: 25,
					s: -119815,
					l: 52
				}, {
					h: 25,
					s: -119867,
					e: [1, 4, 5, 7, 8, 11, 12, 17],
					l: 52
				}, {
					h: 25,
					s: -119919,
					l: 52
				}, {
					h: 24,
					s: -119971,
					e: [2, 7, 8, 17],
					l: 52
				}, {
					h: 24,
					s: -120023,
					e: [2, 7, 13, 15, 16, 17],
					l: 52
				}, {
					h: 25,
					s: -120075,
					l: 52
				}, {
					h: 25,
					s: -120127,
					l: 52
				}, {
					h: 25,
					s: -120179,
					l: 52
				}, {
					h: 25,
					s: -120231,
					l: 52
				}, {
					h: 25,
					s: -120283,
					l: 52
				}, {
					h: 25,
					s: -120335,
					l: 52
				}, {
					h: 24,
					s: -119543,
					e: [17],
					l: 56
				}, {
					h: 24,
					s: -119601,
					e: [17],
					l: 58
				}, {
					h: 24,
					s: -119659,
					e: [17],
					l: 58
				}, {
					h: 24,
					s: -119717,
					e: [17],
					l: 58
				}, {
					h: 24,
					s: -119775,
					e: [17],
					l: 58
				}],
				Ri = Si(
					"b5:3bc,c3:ff,7:73,2:253,5:254,3:256,1:257,5:259,1:25b,3:260,1:263,2:269,1:268,5:26f,1:272,2:275,7:280,3:283,5:288,3:28a,1:28b,5:292,3f:195,1:1bf,29:19e,125:3b9,8b:3b2,1:3b8,1:3c5,3:3c6,1:3c0,1a:3ba,1:3c1,1:3c3,2:3b8,1:3b5,1bc9:3b9,1c:1f76,1:1f77,f:1f7a,1:1f7b,d:1f78,1:1f79,1:1f7c,1:1f7d,107:63,5:25b,4:68,1:68,1:68,3:69,1:69,1:6c,3:6e,4:70,1:71,1:72,1:72,1:72,7:7a,2:3c9,2:7a,2:6b,1:e5,1:62,1:63,3:65,1:66,2:6d,b:3b3,1:3c0,6:64,1b574:3b8,1a:3c3,20:3b8,1a:3c3,20:3b8,1a:3c3,20:3b8,1a:3c3,20:3b8,1a:3c3"
					),
				Ci = Si(
					"179:1,2:1,2:1,5:1,2:1,a:4f,a:1,8:1,2:1,2:1,3:1,5:1,3:1,4:1,2:1,3:1,4:1,8:2,1:1,2:2,1:1,2:2,27:2,195:26,2:25,1:25,1:25,2:40,2:3f,1:3f,33:1,11:-6,1:-9,1ac7:-3a,6d:-8,1:-8,1:-8,1:-8,1:-8,1:-8,1:-8,1:-8,9:-8,1:-8,1:-8,1:-8,1:-8,1:-8,b:-8,1:-8,1:-8,1:-8,1:-8,1:-8,1:-8,1:-8,9:-8,1:-8,1:-8,1:-8,1:-8,1:-8,1:-8,1:-8,9:-8,1:-8,1:-8,1:-8,1:-8,1:-8,c:-8,2:-8,2:-8,2:-8,9:-8,1:-8,1:-8,1:-8,1:-8,1:-8,1:-8,1:-8,49:-8,1:-8,1:-4a,1:-4a,d:-56,1:-56,1:-56,1:-56,d:-8,1:-8,f:-8,1:-8,3:-7"
					),
				Bi = Si(
					"df:00730073,51:00690307,19:02BC006E,a7:006A030C,18a:002003B9,16:03B903080301,20:03C503080301,1d7:05650582,190f:00680331,1:00740308,1:0077030A,1:0079030A,1:006102BE,b6:03C50313,2:03C503130300,2:03C503130301,2:03C503130342,2a:1F0003B9,1:1F0103B9,1:1F0203B9,1:1F0303B9,1:1F0403B9,1:1F0503B9,1:1F0603B9,1:1F0703B9,1:1F0003B9,1:1F0103B9,1:1F0203B9,1:1F0303B9,1:1F0403B9,1:1F0503B9,1:1F0603B9,1:1F0703B9,1:1F2003B9,1:1F2103B9,1:1F2203B9,1:1F2303B9,1:1F2403B9,1:1F2503B9,1:1F2603B9,1:1F2703B9,1:1F2003B9,1:1F2103B9,1:1F2203B9,1:1F2303B9,1:1F2403B9,1:1F2503B9,1:1F2603B9,1:1F2703B9,1:1F6003B9,1:1F6103B9,1:1F6203B9,1:1F6303B9,1:1F6403B9,1:1F6503B9,1:1F6603B9,1:1F6703B9,1:1F6003B9,1:1F6103B9,1:1F6203B9,1:1F6303B9,1:1F6403B9,1:1F6503B9,1:1F6603B9,1:1F6703B9,3:1F7003B9,1:03B103B9,1:03AC03B9,2:03B10342,1:03B1034203B9,5:03B103B9,6:1F7403B9,1:03B703B9,1:03AE03B9,2:03B70342,1:03B7034203B9,5:03B703B9,6:03B903080300,1:03B903080301,3:03B90342,1:03B903080342,b:03C503080300,1:03C503080301,1:03C10313,2:03C50342,1:03C503080342,b:1F7C03B9,1:03C903B9,1:03CE03B9,2:03C90342,1:03C9034203B9,5:03C903B9,ac:00720073,5b:00B00063,6:00B00066,d:006E006F,a:0073006D,1:00740065006C,1:0074006D,124f:006800700061,2:00610075,2:006F0076,b:00700061,1:006E0061,1:03BC0061,1:006D0061,1:006B0061,1:006B0062,1:006D0062,1:00670062,3:00700066,1:006E0066,1:03BC0066,4:0068007A,1:006B0068007A,1:006D0068007A,1:00670068007A,1:00740068007A,15:00700061,1:006B00700061,1:006D00700061,1:006700700061,8:00700076,1:006E0076,1:03BC0076,1:006D0076,1:006B0076,1:006D0076,1:00700077,1:006E0077,1:03BC0077,1:006D0077,1:006B0077,1:006D0077,1:006B03C9,1:006D03C9,2:00620071,3:00632215006B0067,1:0063006F002E,1:00640062,1:00670079,2:00680070,2:006B006B,1:006B006D,9:00700068,2:00700070006D,1:00700072,2:00730076,1:00770062,c723:00660066,1:00660069,1:0066006C,1:006600660069,1:00660066006C,1:00730074,1:00730074,d:05740576,1:05740565,1:0574056B,1:057E0576,1:0574056D",
					(function(t) {
						if (t.length % 4 != 0) throw new Error("bad data");
						let e = [];
						for (let r = 0; r < t.length; r += 4) e.push(parseInt(t.substring(r, r + 4),
							16));
						return e
					})),
				Fi = Pi(
					"80-20,2a0-,39c,32,f71,18e,7f2-f,19-7,30-4,7-5,f81-b,5,a800-20ff,4d1-1f,110,fa-6,d174-7,2e84-,ffff-,ffff-,ffff-,ffff-,ffff-,ffff-,ffff-,ffff-,ffff-,ffff-,ffff-,ffff-,2,1f-5f,ff7f-20001"
					);

			function ji(t) {
				if (t.match(/^[a-z0-9-]*$/i) && t.length <= 59) return t.toLowerCase();
				let e = se(t);
				var r;
				r = e.map((t => {
					if (Ii.indexOf(t) >= 0) return [];
					if (t >= 65024 && t <= 65039) return [];
					let e = function(t) {
						let e = Mi(t, Ti);
						if (e) return [t + e.s];
						let r = Ri[t];
						if (r) return r;
						let n = Ci[t];
						return n ? [t + n[0]] : Bi[t] || null
					}(t);
					return e || [t]
				})), e = r.reduce(((t, e) => (e.forEach((e => {
					t.push(e)
				})), t)), []), e = se(ie(e), Qt.NFKC), e.forEach((t => {
					if (Mi(t, Fi)) throw new Error("STRINGPREP_CONTAINS_PROHIBITED")
				})), e.forEach((t => {
					if (Mi(t, Oi)) throw new Error("STRINGPREP_CONTAINS_UNASSIGNED")
				}));
				let n = ie(e);
				if ("-" === n.substring(0, 1) || "--" === n.substring(2, 4) || "-" === n.substring(n
						.length - 1)) throw new Error("invalid hyphen");
				if (n.length > 63) throw new Error("too long");
				return n
			}
			const Li = new S(Zn),
				Ui = new Uint8Array(32);
			Ui.fill(0);
			const Di = new RegExp("^((.*)\\.)?([^.]+)$");

			function qi(t) {
				"string" != typeof t && Li.throwArgumentError("invalid ENS name; not a string", "name",
					t);
				let e = t,
					r = Ui;
				for (; e.length;) {
					const n = e.match(Di);
					null != n && "" !== n[2] || Li.throwArgumentError(
						"invalid ENS address; missing component", "name", t);
					r = at(B([r, at(ne(ji(n[3])))])), e = n[2] || ""
				}
				return U(r)
			}
			const zi = new S("networks/5.6.1");

			function Gi(t) {
				const e = function(e, r) {
					null == r && (r = {});
					const n = [];
					if (e.InfuraProvider && "-" !== r.infura) try {
						n.push(new e.InfuraProvider(t, r.infura))
					} catch (t) {}
					if (e.EtherscanProvider && "-" !== r.etherscan) try {
						n.push(new e.EtherscanProvider(t, r.etherscan))
					} catch (t) {}
					if (e.AlchemyProvider && "-" !== r.alchemy) try {
						n.push(new e.AlchemyProvider(t, r.alchemy))
					} catch (t) {}
					if (e.PocketProvider && "-" !== r.pocket) {
						const r = ["goerli", "ropsten", "rinkeby"];
						try {
							const i = new e.PocketProvider(t);
							i.network && -1 === r.indexOf(i.network.name) && n.push(i)
						} catch (t) {}
					}
					if (e.CloudflareProvider && "-" !== r.cloudflare) try {
						n.push(new e.CloudflareProvider(t))
					} catch (t) {}
					if (e.AnkrProvider && "-" !== r.ankr) try {
						n.push(new e.AnkrProvider(t, r.ankr))
					} catch (t) {}
					if (0 === n.length) return null;
					if (e.FallbackProvider) {
						let i = 1;
						return null != r.quorum ? i = r.quorum : "homestead" === t && (i = 2), new e
							.FallbackProvider(n, i)
					}
					return n[0]
				};
				return e.renetwork = function(t) {
					return Gi(t)
				}, e
			}

			function Vi(t, e) {
				const r = function(r, n) {
					return r.JsonRpcProvider ? new r.JsonRpcProvider(t, e) : null
				};
				return r.renetwork = function(e) {
					return Vi(t, e)
				}, r
			}
			const Hi = {
					chainId: 1,
					ensAddress: "0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e",
					name: "homestead",
					_defaultProvider: Gi("homestead")
				},
				$i = {
					chainId: 3,
					ensAddress: "0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e",
					name: "ropsten",
					_defaultProvider: Gi("ropsten")
				},
				Wi = {
					chainId: 63,
					name: "classicMordor",
					_defaultProvider: Vi("https://www.ethercluster.com/mordor", "classicMordor")
				},
				Ji = {
					unspecified: {
						chainId: 0,
						name: "unspecified"
					},
					homestead: Hi,
					mainnet: Hi,
					morden: {
						chainId: 2,
						name: "morden"
					},
					ropsten: $i,
					testnet: $i,
					rinkeby: {
						chainId: 4,
						ensAddress: "0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e",
						name: "rinkeby",
						_defaultProvider: Gi("rinkeby")
					},
					kovan: {
						chainId: 42,
						name: "kovan",
						_defaultProvider: Gi("kovan")
					},
					goerli: {
						chainId: 5,
						ensAddress: "0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e",
						name: "goerli",
						_defaultProvider: Gi("goerli")
					},
					kintsugi: {
						chainId: 1337702,
						name: "kintsugi"
					},
					classic: {
						chainId: 61,
						name: "classic",
						_defaultProvider: Vi("https://www.ethercluster.com/etc", "classic")
					},
					classicMorden: {
						chainId: 62,
						name: "classicMorden"
					},
					classicMordor: Wi,
					classicTestnet: Wi,
					classicKotti: {
						chainId: 6,
						name: "classicKotti",
						_defaultProvider: Vi("https://www.ethercluster.com/kotti", "classicKotti")
					},
					xdai: {
						chainId: 100,
						name: "xdai"
					},
					matic: {
						chainId: 137,
						name: "matic"
					},
					maticmum: {
						chainId: 80001,
						name: "maticmum"
					},
					optimism: {
						chainId: 10,
						name: "optimism"
					},
					"optimism-kovan": {
						chainId: 69,
						name: "optimism-kovan"
					},
					"optimism-goerli": {
						chainId: 420,
						name: "optimism-goerli"
					},
					arbitrum: {
						chainId: 42161,
						name: "arbitrum"
					},
					"arbitrum-rinkeby": {
						chainId: 421611,
						name: "arbitrum-rinkeby"
					},
					bnb: {
						chainId: 56,
						name: "bnb"
					},
					bnbt: {
						chainId: 97,
						name: "bnbt"
					}
				};
			new S("sha2/5.6.0");

			function Xi(t) {
				return "0x" + br().sha256().update(C(t)).digest("hex")
			}
			var Ki = r(2882),
				Zi = r.n(Ki);
			const Qi = new S(Ai);
			class Yi {
				constructor() {
					Qi.checkNew(new.target, Yi), this.formats = this.getDefaultFormats()
				}
				getDefaultFormats() {
					const t = {},
						e = this.address.bind(this),
						r = this.bigNumber.bind(this),
						n = this.blockTag.bind(this),
						i = this.data.bind(this),
						o = this.hash.bind(this),
						s = this.hex.bind(this),
						a = this.number.bind(this),
						u = this.type.bind(this);
					return t.transaction = {
							hash: o,
							type: u,
							accessList: Yi.allowNull(this.accessList.bind(this), null),
							blockHash: Yi.allowNull(o, null),
							blockNumber: Yi.allowNull(a, null),
							transactionIndex: Yi.allowNull(a, null),
							confirmations: Yi.allowNull(a, null),
							from: e,
							gasPrice: Yi.allowNull(r),
							maxPriorityFeePerGas: Yi.allowNull(r),
							maxFeePerGas: Yi.allowNull(r),
							gasLimit: r,
							to: Yi.allowNull(e, null),
							value: r,
							nonce: a,
							data: i,
							r: Yi.allowNull(this.uint256),
							s: Yi.allowNull(this.uint256),
							v: Yi.allowNull(a),
							creates: Yi.allowNull(e, null),
							raw: Yi.allowNull(i)
						}, t.transactionRequest = {
							from: Yi.allowNull(e),
							nonce: Yi.allowNull(a),
							gasLimit: Yi.allowNull(r),
							gasPrice: Yi.allowNull(r),
							maxPriorityFeePerGas: Yi.allowNull(r),
							maxFeePerGas: Yi.allowNull(r),
							to: Yi.allowNull(e),
							value: Yi.allowNull(r),
							data: Yi.allowNull((t => this.data(t, !0))),
							type: Yi.allowNull(a),
							accessList: Yi.allowNull(this.accessList.bind(this), null)
						}, t.receiptLog = {
							transactionIndex: a,
							blockNumber: a,
							transactionHash: o,
							address: e,
							topics: Yi.arrayOf(o),
							data: i,
							logIndex: a,
							blockHash: o
						}, t.receipt = {
							to: Yi.allowNull(this.address, null),
							from: Yi.allowNull(this.address, null),
							contractAddress: Yi.allowNull(e, null),
							transactionIndex: a,
							root: Yi.allowNull(s),
							gasUsed: r,
							logsBloom: Yi.allowNull(i),
							blockHash: o,
							transactionHash: o,
							logs: Yi.arrayOf(this.receiptLog.bind(this)),
							blockNumber: a,
							confirmations: Yi.allowNull(a, null),
							cumulativeGasUsed: r,
							effectiveGasPrice: Yi.allowNull(r),
							status: Yi.allowNull(a),
							type: u
						}, t.block = {
							hash: Yi.allowNull(o),
							parentHash: o,
							number: a,
							timestamp: a,
							nonce: Yi.allowNull(s),
							difficulty: this.difficulty.bind(this),
							gasLimit: r,
							gasUsed: r,
							miner: Yi.allowNull(e),
							extraData: i,
							transactions: Yi.allowNull(Yi.arrayOf(o)),
							baseFeePerGas: Yi.allowNull(r)
						}, t.blockWithTransactions = Dt(t.block), t.blockWithTransactions
						.transactions = Yi.allowNull(Yi.arrayOf(this.transactionResponse.bind(
							this))), t.filter = {
							fromBlock: Yi.allowNull(n, void 0),
							toBlock: Yi.allowNull(n, void 0),
							blockHash: Yi.allowNull(o, void 0),
							address: Yi.allowNull(e, void 0),
							topics: Yi.allowNull(this.topics.bind(this), void 0)
						}, t.filterLog = {
							blockNumber: Yi.allowNull(a),
							blockHash: Yi.allowNull(o),
							transactionIndex: a,
							removed: Yi.allowNull(this.boolean.bind(this)),
							address: e,
							data: Yi.allowFalsish(i, "0x"),
							topics: Yi.arrayOf(o),
							transactionHash: o,
							logIndex: a
						}, t
				}
				accessList(t) {
					return mn(t || [])
				}
				number(t) {
					return "0x" === t ? 0 : tt.from(t).toNumber()
				}
				type(t) {
					return "0x" === t || null == t ? 0 : tt.from(t).toNumber()
				}
				bigNumber(t) {
					return tt.from(t)
				}
				boolean(t) {
					if ("boolean" == typeof t) return t;
					if ("string" == typeof t) {
						if ("true" === (t = t.toLowerCase())) return !0;
						if ("false" === t) return !1
					}
					throw new Error("invalid boolean - " + t)
				}
				hex(t, e) {
					return "string" == typeof t && (e || "0x" === t.substring(0, 2) || (t = "0x" +
						t), j(t)) ? t.toLowerCase() : Qi.throwArgumentError("invalid hash",
						"value", t)
				}
				data(t, e) {
					const r = this.hex(t, e);
					if (r.length % 2 != 0) throw new Error("invalid data; odd-length - " + t);
					return r
				}
				address(t) {
					return _t(t)
				}
				callAddress(t) {
					if (!j(t, 32)) return null;
					const e = _t(q(t, 12));
					return "0x0000000000000000000000000000000000000000" === e ? null : e
				}
				contractAddress(t) {
					return xt(t)
				}
				blockTag(t) {
					if (null == t) return "latest";
					if ("earliest" === t) return "0x0";
					if ("latest" === t || "pending" === t) return t;
					if ("number" == typeof t || j(t)) return G(t);
					throw new Error("invalid blockTag")
				}
				hash(t, e) {
					const r = this.hex(t, e);
					return 32 !== D(r) ? Qi.throwArgumentError("invalid hash", "value", t) : r
				}
				difficulty(t) {
					if (null == t) return null;
					const e = tt.from(t);
					try {
						return e.toNumber()
					} catch (t) {}
					return null
				}
				uint256(t) {
					if (!j(t)) throw new Error("invalid uint256");
					return V(t, 32)
				}
				_block(t, e) {
					null != t.author && null == t.miner && (t.miner = t.author);
					const r = null != t._difficulty ? t._difficulty : t.difficulty,
						n = Yi.check(e, t);
					return n._difficulty = null == r ? null : tt.from(r), n
				}
				block(t) {
					return this._block(t, this.formats.block)
				}
				blockWithTransactions(t) {
					return this._block(t, this.formats.blockWithTransactions)
				}
				transactionRequest(t) {
					return Yi.check(this.formats.transactionRequest, t)
				}
				transactionResponse(t) {
					null != t.gas && null == t.gasLimit && (t.gasLimit = t.gas), t.to && tt.from(t
							.to).isZero() && (t.to = "0x0000000000000000000000000000000000000000"),
						null != t.input && null == t.data && (t.data = t.input), null == t.to &&
						null == t.creates && (t.creates = this.contractAddress(t)), 1 !== t.type &&
						2 !== t.type || null != t.accessList || (t.accessList = []);
					const e = Yi.check(this.formats.transaction, t);
					if (null != t.chainId) {
						let r = t.chainId;
						j(r) && (r = tt.from(r).toNumber()), e.chainId = r
					} else {
						let r = t.networkId;
						null == r && null == e.v && (r = t.chainId), j(r) && (r = tt.from(r)
								.toNumber()), "number" != typeof r && null != e.v && (r = (e.v -
								35) / 2, r < 0 && (r = 0), r = parseInt(r)), "number" != typeof r &&
							(r = 0), e.chainId = r
					}
					return e.blockHash && "x" === e.blockHash.replace(/0/g, "") && (e.blockHash =
						null), e
				}
				transaction(t) {
					return wn(t)
				}
				receiptLog(t) {
					return Yi.check(this.formats.receiptLog, t)
				}
				receipt(t) {
					const e = Yi.check(this.formats.receipt, t);
					if (null != e.root)
						if (e.root.length <= 4) {
							const t = tt.from(e.root).toNumber();
							0 === t || 1 === t ? (null != e.status && e.status !== t && Qi
								.throwArgumentError("alt-root-status/status mismatch",
								"value", {
									root: e.root,
									status: e.status
								}), e.status = t, delete e.root) : Qi.throwArgumentError(
								"invalid alt-root-status", "value.root", e.root)
						} else 66 !== e.root.length && Qi.throwArgumentError("invalid root hash",
							"value.root", e.root);
					return null != e.status && (e.byzantium = !0), e
				}
				topics(t) {
					return Array.isArray(t) ? t.map((t => this.topics(t))) : null != t ? this.hash(
						t, !0) : null
				}
				filter(t) {
					return Yi.check(this.formats.filter, t)
				}
				filterLog(t) {
					return Yi.check(this.formats.filterLog, t)
				}
				static check(t, e) {
					const r = {};
					for (const n in t) try {
						const i = t[n](e[n]);
						void 0 !== i && (r[n] = i)
					} catch (t) {
						throw t.checkKey = n, t.checkValue = e[n], t
					}
					return r
				}
				static allowNull(t, e) {
					return function(r) {
						return null == r ? e : t(r)
					}
				}
				static allowFalsish(t, e) {
					return function(r) {
						return r ? t(r) : e
					}
				}
				static arrayOf(t) {
					return function(e) {
						if (!Array.isArray(e)) throw new Error("not an array");
						const r = [];
						return e.forEach((function(e) {
							r.push(t(e))
						})), r
					}
				}
			}
			var to = function(t, e, r, n) {
				return new(r || (r = Promise))((function(i, o) {
					function s(t) {
						try {
							u(n.next(t))
						} catch (t) {
							o(t)
						}
					}

					function a(t) {
						try {
							u(n.throw(t))
						} catch (t) {
							o(t)
						}
					}

					function u(t) {
						var e;
						t.done ? i(t.value) : (e = t.value, e instanceof r ? e : new r((
							function(t) {
								t(e)
							}))).then(s, a)
					}
					u((n = n.apply(t, e || [])).next())
				}))
			};
			const eo = new S(Ai);

			function ro(t) {
				return null == t ? "null" : (32 !== D(t) && eo.throwArgumentError("invalid topic",
					"topic", t), t.toLowerCase())
			}

			function no(t) {
				for (t = t.slice(); t.length > 0 && null == t[t.length - 1];) t.pop();
				return t.map((t => {
					if (Array.isArray(t)) {
						const e = {};
						t.forEach((t => {
							e[ro(t)] = !0
						}));
						const r = Object.keys(e);
						return r.sort(), r.join("|")
					}
					return ro(t)
				})).join("&")
			}

			function io(t) {
				if ("string" == typeof t) {
					if (32 === D(t = t.toLowerCase())) return "tx:" + t;
					if (-1 === t.indexOf(":")) return t
				} else {
					if (Array.isArray(t)) return "filter:*:" + no(t);
					if (lr.isForkEvent(t)) throw eo.warn("not implemented"), new Error(
						"not implemented");
					if (t && "object" == typeof t) return "filter:" + (t.address || "*") + ":" + no(t
						.topics || [])
				}
				throw new Error("invalid event - " + t)
			}

			function oo() {
				return (new Date).getTime()
			}

			function so(t) {
				return new Promise((e => {
					setTimeout(e, t)
				}))
			}
			const ao = ["block", "network", "pending", "poll"];
			class uo {
				constructor(t, e, r) {
					jt(this, "tag", t), jt(this, "listener", e), jt(this, "once", r), this
						._lastBlockNumber = -2, this._inflight = !1
				}
				get event() {
					switch (this.type) {
						case "tx":
							return this.hash;
						case "filter":
							return this.filter
					}
					return this.tag
				}
				get type() {
					return this.tag.split(":")[0]
				}
				get hash() {
					const t = this.tag.split(":");
					return "tx" !== t[0] ? null : t[1]
				}
				get filter() {
					const t = this.tag.split(":");
					if ("filter" !== t[0]) return null;
					const e = t[1],
						r = "" === (n = t[2]) ? [] : n.split(/&/g).map((t => {
							if ("" === t) return [];
							const e = t.split("|").map((t => "null" === t ? null : t));
							return 1 === e.length ? e[0] : e
						}));
					var n;
					const i = {};
					return r.length > 0 && (i.topics = r), e && "*" !== e && (i.address = e), i
				}
				pollable() {
					return this.tag.indexOf(":") >= 0 || ao.indexOf(this.tag) >= 0
				}
			}
			const co = {
				0: {
					symbol: "btc",
					p2pkh: 0,
					p2sh: 5,
					prefix: "bc"
				},
				2: {
					symbol: "ltc",
					p2pkh: 48,
					p2sh: 50,
					prefix: "ltc"
				},
				3: {
					symbol: "doge",
					p2pkh: 30,
					p2sh: 22
				},
				60: {
					symbol: "eth",
					ilk: "eth"
				},
				61: {
					symbol: "etc",
					ilk: "eth"
				},
				700: {
					symbol: "xdai",
					ilk: "eth"
				}
			};

			function lo(t) {
				return V(tt.from(t).toHexString(), 32)
			}

			function ho(t) {
				return Ni.encode(B([t, q(Xi(Xi(t)), 0, 4)]))
			}
			const fo = new RegExp("^(ipfs)://(.*)$", "i"),
				po = [new RegExp("^(https)://(.*)$", "i"), new RegExp("^(data):(.*)$", "i"), fo,
					new RegExp("^eip155:[0-9]+/(erc[0-9]+):(.*)$", "i")
				];

			function mo(t, e) {
				try {
					return oe(go(t, e))
				} catch (t) {}
				return null
			}

			function go(t, e) {
				if ("0x" === t) return null;
				const r = tt.from(q(t, e, e + 32)).toNumber(),
					n = tt.from(q(t, r, r + 32)).toNumber();
				return q(t, r + 32, r + 32 + n)
			}

			function yo(t) {
				return t.match(/^ipfs:\/\/ipfs\//i) ? t = t.substring(12) : t.match(/^ipfs:\/\//i) ? t =
					t.substring(7) : eo.throwArgumentError("unsupported IPFS format", "link", t),
					`https://gateway.ipfs.io/ipfs/${t}`
			}

			function vo(t) {
				const e = C(t);
				if (e.length > 32) throw new Error("internal; should not happen");
				const r = new Uint8Array(32);
				return r.set(e, 32 - e.length), r
			}

			function bo(t) {
				if (t.length % 32 == 0) return t;
				const e = new Uint8Array(32 * Math.ceil(t.length / 32));
				return e.set(t), e
			}

			function wo(t) {
				const e = [];
				let r = 0;
				for (let n = 0; n < t.length; n++) e.push(null), r += 32;
				for (let n = 0; n < t.length; n++) {
					const i = C(t[n]);
					e[n] = vo(r), e.push(vo(i.length)), e.push(bo(i)), r += 32 + 32 * Math.ceil(i
						.length / 32)
				}
				return z(e)
			}
			class Eo {
				constructor(t, e, r, n) {
					jt(this, "provider", t), jt(this, "name", r), jt(this, "address", t.formatter
						.address(e)), jt(this, "_resolvedAddress", n)
				}
				supportsWildcard() {
					return this._supportsEip2544 || (this._supportsEip2544 = this.provider.call({
						to: this.address,
						data: "0x01ffc9a79061b92300000000000000000000000000000000000000000000000000000000"
					}).then((t => tt.from(t).eq(1))).catch((t => {
						if (t.code === S.errors.CALL_EXCEPTION) return !1;
						throw this._supportsEip2544 = null, t
					}))), this._supportsEip2544
				}
				_fetch(t, e) {
					return to(this, void 0, void 0, (function*() {
						const r = {
							to: this.address,
							ccipReadEnabled: !0,
							data: z([t, qi(this.name), e || "0x"])
						};
						let n = !1;
						var i;
						(yield this.supportsWildcard()) && (n = !0, r.data = z([
							"0x9061b923", wo([(i = this.name, U(B(i.split(".")
								.map((t => {
									const e = ne("_" +
										ji(t));
									return e[0] = e
										.length - 1, e
								})))) + "00"), r.data])
						]));
						try {
							let t = yield this.provider.call(r);
							return C(t).length % 32 == 4 && eo.throwError(
								"resolver threw error", S.errors.CALL_EXCEPTION, {
									transaction: r,
									data: t
								}), n && (t = go(t, 0)), t
						} catch (t) {
							if (t.code === S.errors.CALL_EXCEPTION) return null;
							throw t
						}
					}))
				}
				_fetchBytes(t, e) {
					return to(this, void 0, void 0, (function*() {
						const r = yield this._fetch(t, e);
						return null != r ? go(r, 0) : null
					}))
				}
				_getAddress(t, e) {
					const r = co[String(t)];
					if (null == r && eo.throwError(`unsupported coin type: ${t}`, S.errors
							.UNSUPPORTED_OPERATION, {
								operation: `getAddress(${t})`
							}), "eth" === r.ilk) return this.provider.formatter.address(e);
					const n = C(e);
					if (null != r.p2pkh) {
						const t = e.match(/^0x76a9([0-9a-f][0-9a-f])([0-9a-f]*)88ac$/);
						if (t) {
							const e = parseInt(t[1], 16);
							if (t[2].length === 2 * e && e >= 1 && e <= 75) return ho(B([
								[r.p2pkh], "0x" + t[2]
							]))
						}
					}
					if (null != r.p2sh) {
						const t = e.match(/^0xa9([0-9a-f][0-9a-f])([0-9a-f]*)87$/);
						if (t) {
							const e = parseInt(t[1], 16);
							if (t[2].length === 2 * e && e >= 1 && e <= 75) return ho(B([
								[r.p2sh], "0x" + t[2]
							]))
						}
					}
					if (null != r.prefix) {
						const t = n[1];
						let e = n[0];
						if (0 === e ? 20 !== t && 32 !== t && (e = -1) : e = -1, e >= 0 && n
							.length === 2 + t && t >= 1 && t <= 75) {
							const t = Zi().toWords(n.slice(2));
							return t.unshift(e), Zi().encode(r.prefix, t)
						}
					}
					return null
				}
				getAddress(t) {
					return to(this, void 0, void 0, (function*() {
						if (null == t && (t = 60), 60 === t) try {
							const t = yield this._fetch("0x3b3b57de");
							return "0x" === t ||
								"0x0000000000000000000000000000000000000000000000000000000000000000" ===
								t ? null : this.provider.formatter.callAddress(t)
						} catch (t) {
							if (t.code === S.errors.CALL_EXCEPTION) return null;
							throw t
						}
						const e = yield this._fetchBytes("0xf1cb7e06", lo(t));
						if (null == e || "0x" === e) return null;
						const r = this._getAddress(t, e);
						return null == r && eo.throwError(
							"invalid or unsupported coin data", S.errors
							.UNSUPPORTED_OPERATION, {
								operation: `getAddress(${t})`,
								coinType: t,
								data: e
							}), r
					}))
				}
				getAvatar() {
					return to(this, void 0, void 0, (function*() {
						const t = [{
							type: "name",
							content: this.name
						}];
						try {
							const e = yield this.getText("avatar");
							if (null == e) return null;
							for (let r = 0; r < po.length; r++) {
								const n = e.match(po[r]);
								if (null == n) continue;
								const i = n[1].toLowerCase();
								switch (i) {
									case "https":
										return t.push({
											type: "url",
											content: e
										}), {
											linkage: t,
											url: e
										};
									case "data":
										return t.push({
											type: "data",
											content: e
										}), {
											linkage: t,
											url: e
										};
									case "ipfs":
										return t.push({
											type: "ipfs",
											content: e
										}), {
											linkage: t,
											url: yo(e)
										};
									case "erc721":
									case "erc1155": {
										const r = "erc721" === i ? "0xc87b56dd" :
											"0x0e89341c";
										t.push({
											type: i,
											content: e
										});
										const o = this._resolvedAddress || (yield this
												.getAddress()),
											s = (n[2] || "").split("/");
										if (2 !== s.length) return null;
										const a = yield this.provider.formatter.address(
											s[0]), u = V(tt.from(s[1])
											.toHexString(), 32);
										if ("erc721" === i) {
											const e = this.provider.formatter
												.callAddress(yield this.provider.call({
													to: a,
													data: z(["0x6352211e",
														u])
												}));
											if (o !== e) return null;
											t.push({
												type: "owner",
												content: e
											})
										} else if ("erc1155" === i) {
											const e = tt.from(yield this.provider.call({
												to: a,
												data: z(["0x00fdd58e",
													V(o, 32), u
												])
											}));
											if (e.isZero()) return null;
											t.push({
												type: "balance",
												content: e.toString()
											})
										}
										const c = {
											to: this.provider.formatter.address(s[
												0]),
											data: z([r, u])
										};
										let l = mo(yield this.provider.call(c), 0);
										if (null == l) return null;
										t.push({
												type: "metadata-url-base",
												content: l
											}), "erc1155" === i && (l = l.replace(
												"{id}", u.substring(2)), t.push({
												type: "metadata-url-expanded",
												content: l
											})), l.match(/^ipfs:/i) && (l = yo(l)), t
											.push({
												type: "metadata-url",
												content: l
											});
										const h = yield _i(l);
										if (!h) return null;
										t.push({
											type: "metadata",
											content: JSON.stringify(h)
										});
										let f = h.image;
										if ("string" != typeof f) return null;
										if (f.match(/^(https:\/\/|data:)/i));
										else {
											if (null == f.match(fo)) return null;
											t.push({
												type: "url-ipfs",
												content: f
											}), f = yo(f)
										}
										return t.push({
											type: "url",
											content: f
										}), {
											linkage: t,
											url: f
										}
									}
								}
							}
						} catch (t) {}
						return null
					}))
				}
				getContentHash() {
					return to(this, void 0, void 0, (function*() {
						const t = yield this._fetchBytes("0xbc1c58d1");
						if (null == t || "0x" === t) return null;
						const e = t.match(
							/^0xe3010170(([0-9a-f][0-9a-f])([0-9a-f][0-9a-f])([0-9a-f]*))$/
							);
						if (e) {
							const t = parseInt(e[3], 16);
							if (e[4].length === 2 * t) return "ipfs://" + Ni.encode(
								"0x" + e[1])
						}
						const r = t.match(
							/^0xe5010172(([0-9a-f][0-9a-f])([0-9a-f][0-9a-f])([0-9a-f]*))$/
							);
						if (r) {
							const t = parseInt(r[3], 16);
							if (r[4].length === 2 * t) return "ipns://" + Ni.encode(
								"0x" + r[1])
						}
						const n = t.match(/^0xe40101fa011b20([0-9a-f]*)$/);
						return n && 64 === n[1].length ? "bzz://" + n[1] : eo
							.throwError("invalid or unsupported content hash data", S
								.errors.UNSUPPORTED_OPERATION, {
									operation: "getContentHash()",
									data: t
								})
					}))
				}
				getText(t) {
					return to(this, void 0, void 0, (function*() {
						let e = ne(t);
						e = B([lo(64), lo(e.length), e]), e.length % 32 != 0 && (e = B([
							e, V("0x", 32 - t.length % 32)
						]));
						const r = yield this._fetchBytes("0x59d1d43c", U(e));
						return null == r || "0x" === r ? null : oe(r)
					}))
				}
			}
			let _o = null,
				xo = 1;
			class Ao extends hr {
				constructor(t) {
					if (eo.checkNew(new.target, hr), super(), this._events = [], this._emitted = {
							block: -2
						}, this.disableCcipRead = !1, this.formatter = new.target.getFormatter(),
						jt(this, "anyNetwork", "any" === t), this.anyNetwork && (t = this
							.detectNetwork()), t instanceof Promise) this._networkPromise = t, t
						.catch((t => {})), this._ready().catch((t => {}));
					else {
						const e = Lt(new.target, "getNetwork")(t);
						e ? (jt(this, "_network", e), this.emit("network", e, null)) : eo
							.throwArgumentError("invalid network", "network", t)
					}
					this._maxInternalBlockNumber = -1024, this._lastBlockNumber = -2, this
						._maxFilterBlockRange = 10, this._pollingInterval = 4e3, this
						._fastQueryDate = 0
				}
				_ready() {
					return to(this, void 0, void 0, (function*() {
						if (null == this._network) {
							let t = null;
							if (this._networkPromise) try {
								t = yield this._networkPromise
							} catch (t) {}
							null == t && (t = yield this.detectNetwork()), t || eo
								.throwError("no network detected", S.errors
									.UNKNOWN_ERROR, {}), null == this._network && (this
									.anyNetwork ? this._network = t : jt(this,
										"_network", t), this.emit("network", t, null))
						}
						return this._network
					}))
				}
				get ready() {
					return xi((() => this._ready().then((t => t), (t => {
						if (t.code !== S.errors.NETWORK_ERROR || "noNetwork" !==
							t.event) throw t
					}))))
				}
				static getFormatter() {
					return null == _o && (_o = new Yi), _o
				}
				static getNetwork(t) {
					return function(t) {
						if (null == t) return null;
						if ("number" == typeof t) {
							for (const e in Ji) {
								const r = Ji[e];
								if (r.chainId === t) return {
									name: r.name,
									chainId: r.chainId,
									ensAddress: r.ensAddress || null,
									_defaultProvider: r._defaultProvider || null
								}
							}
							return {
								chainId: t,
								name: "unknown"
							}
						}
						if ("string" == typeof t) {
							const e = Ji[t];
							return null == e ? null : {
								name: e.name,
								chainId: e.chainId,
								ensAddress: e.ensAddress,
								_defaultProvider: e._defaultProvider || null
							}
						}
						const e = Ji[t.name];
						if (!e) return "number" != typeof t.chainId && zi.throwArgumentError(
							"invalid network chainId", "network", t), t;
						0 !== t.chainId && t.chainId !== e.chainId && zi.throwArgumentError(
							"network chainId mismatch", "network", t);
						let r = t._defaultProvider || null;
						var n;
						return null == r && e._defaultProvider && (r = (n = e
							._defaultProvider) && "function" == typeof n.renetwork ? e
							._defaultProvider.renetwork(t) : e._defaultProvider), {
							name: t.name,
							chainId: e.chainId,
							ensAddress: t.ensAddress || e.ensAddress || null,
							_defaultProvider: r
						}
					}(null == t ? "homestead" : t)
				}
				ccipReadFetch(t, e, r) {
					return to(this, void 0, void 0, (function*() {
						if (this.disableCcipRead || 0 === r.length) return null;
						const n = t.to.toLowerCase(),
							i = e.toLowerCase(),
							o = [];
						for (let t = 0; t < r.length; t++) {
							const e = r[t],
								s = e.replace("{sender}", n).replace("{data}", i),
								a = e.indexOf("{data}") >= 0 ? null : JSON.stringify({
									data: i,
									sender: n
								}),
								u = yield _i({
									url: s,
									errorPassThrough: !0
								}, a, ((t, e) => (t.status = e.statusCode, t)));
							if (u.data) return u.data;
							const c = u.message || "unknown error";
							if (u.status >= 400 && u.status < 500) return eo.throwError(
								`response not found during CCIP fetch: ${c}`, S
								.errors.SERVER_ERROR, {
									url: e,
									errorMessage: c
								});
							o.push(c)
						}
						return eo.throwError(
							`error encountered during CCIP fetch: ${o.map((t=>JSON.stringify(t))).join(", ")}`,
							S.errors.SERVER_ERROR, {
								urls: r,
								errorMessages: o
							})
					}))
				}
				_getInternalBlockNumber(t) {
					return to(this, void 0, void 0, (function*() {
						if (yield this._ready(), t > 0)
							for (; this._internalBlockNumber;) {
								const e = this._internalBlockNumber;
								try {
									const r = yield e;
									if (oo() - r.respTime <= t) return r.blockNumber;
									break
								} catch (t) {
									if (this._internalBlockNumber === e) break
								}
							}
						const e = oo(),
							r = Ut({
								blockNumber: this.perform("getBlockNumber", {}),
								networkError: this.getNetwork().then((t => null), (
									t => t))
							}).then((({
								blockNumber: t,
								networkError: n
							}) => {
								if (n) throw this._internalBlockNumber === r &&
									(this._internalBlockNumber = null), n;
								const i = oo();
								return (t = tt.from(t).toNumber()) < this
									._maxInternalBlockNumber && (t = this
										._maxInternalBlockNumber), this
									._maxInternalBlockNumber = t, this
									._setFastBlockNumber(t), {
										blockNumber: t,
										reqTime: e,
										respTime: i
									}
							}));
						return this._internalBlockNumber = r, r.catch((t => {
							this._internalBlockNumber === r && (this
								._internalBlockNumber = null)
						})), (yield r).blockNumber
					}))
				}
				poll() {
					return to(this, void 0, void 0, (function*() {
						const t = xo++,
							e = [];
						let r = null;
						try {
							r = yield this._getInternalBlockNumber(100 + this
								.pollingInterval / 2)
						} catch (t) {
							return void this.emit("error", t)
						}
						if (this._setFastBlockNumber(r), this.emit("poll", t, r), r !==
							this._lastBlockNumber) {
							if (-2 === this._emitted.block && (this._emitted.block = r -
									1), Math.abs(this._emitted.block - r) > 1e3) eo
								.warn(
									`network block skew detected; skipping block events (emitted=${this._emitted.block} blockNumber${r})`
									), this.emit("error", eo.makeError(
									"network block skew detected", S.errors
									.NETWORK_ERROR, {
										blockNumber: r,
										event: "blockSkew",
										previousBlockNumber: this._emitted.block
									})), this.emit("block", r);
							else
								for (let t = this._emitted.block + 1; t <= r; t++) this
									.emit("block", t);
							this._emitted.block !== r && (this._emitted.block = r,
								Object.keys(this._emitted).forEach((t => {
									if ("block" === t) return;
									const e = this._emitted[t];
									"pending" !== e && r - e > 12 &&
										delete this._emitted[t]
								}))), -2 === this._lastBlockNumber && (this
								._lastBlockNumber = r - 1), this._events.forEach((
								t => {
									switch (t.type) {
										case "tx": {
											const r = t.hash;
											let n = this.getTransactionReceipt(
												r).then((t => t && null != t
												.blockNumber ? (this
													._emitted["t:" +
													r] = t.blockNumber,
													this.emit(r, t),
													null) : null)).catch((
												t => {
													this.emit("error",
														t)
												}));
											e.push(n);
											break
										}
										case "filter":
											if (!t._inflight) {
												t._inflight = !0;
												const n = t.filter;
												n.fromBlock = t
													._lastBlockNumber + 1, n
													.toBlock = r, n.toBlock -
													this._maxFilterBlockRange >
													n.fromBlock && (n
														.fromBlock = n.toBlock -
														this
														._maxFilterBlockRange);
												const i = this.getLogs(n).then((
													e => {
														t._inflight = !
															1, 0 !== e
															.length && e
															.forEach((
																e => {
																	e.blockNumber >
																		t
																		._lastBlockNumber &&
																		(t._lastBlockNumber =
																			e
																			.blockNumber
																			),
																		this
																		._emitted[
																			"b:" +
																			e
																			.blockHash
																			] =
																		e
																		.blockNumber,
																		this
																		._emitted[
																			"t:" +
																			e
																			.transactionHash
																			] =
																		e
																		.blockNumber,
																		this
																		.emit(
																			n,
																			e
																			)
																}))
													})).catch((e => {
													this.emit(
															"error",
															e), t
														._inflight = !
														1
												}));
												e.push(i)
											}
									}
								})), this._lastBlockNumber = r, Promise.all(e).then(
								(() => {
									this.emit("didPoll", t)
								})).catch((t => {
								this.emit("error", t)
							}))
						} else this.emit("didPoll", t)
					}))
				}
				resetEventsBlock(t) {
					this._lastBlockNumber = t - 1, this.polling && this.poll()
				}
				get network() {
					return this._network
				}
				detectNetwork() {
					return to(this, void 0, void 0, (function*() {
						return eo.throwError(
							"provider does not support network detection", S.errors
							.UNSUPPORTED_OPERATION, {
								operation: "provider.detectNetwork"
							})
					}))
				}
				getNetwork() {
					return to(this, void 0, void 0, (function*() {
						const t = yield this._ready(), e = yield this.detectNetwork();
						if (t.chainId !== e.chainId) {
							if (this.anyNetwork) return this._network = e, this
								._lastBlockNumber = -2, this._fastBlockNumber =
								null, this._fastBlockNumberPromise = null, this
								._fastQueryDate = 0, this._emitted.block = -2, this
								._maxInternalBlockNumber = -1024, this
								._internalBlockNumber = null, this.emit("network",
									e, t), yield so(0), this._network;
							const r = eo.makeError("underlying network changed", S
								.errors.NETWORK_ERROR, {
									event: "changed",
									network: t,
									detectedNetwork: e
								});
							throw this.emit("error", r), r
						}
						return t
					}))
				}
				get blockNumber() {
					return this._getInternalBlockNumber(100 + this.pollingInterval / 2).then((t => {
						this._setFastBlockNumber(t)
					}), (t => {})), null != this._fastBlockNumber ? this._fastBlockNumber : -1
				}
				get polling() {
					return null != this._poller
				}
				set polling(t) {
					t && !this._poller ? (this._poller = setInterval((() => {
						this.poll()
					}), this.pollingInterval), this._bootstrapPoll || (this._bootstrapPoll =
						setTimeout((() => {
							this.poll(), this._bootstrapPoll = setTimeout((() => {
								this._poller || this.poll(), this
									._bootstrapPoll = null
							}), this.pollingInterval)
						}), 0))) : !t && this._poller && (clearInterval(this._poller), this
						._poller = null)
				}
				get pollingInterval() {
					return this._pollingInterval
				}
				set pollingInterval(t) {
					if ("number" != typeof t || t <= 0 || parseInt(String(t)) != t) throw new Error(
						"invalid polling interval");
					this._pollingInterval = t, this._poller && (clearInterval(this._poller), this
						._poller = setInterval((() => {
							this.poll()
						}), this._pollingInterval))
				}
				_getFastBlockNumber() {
					const t = oo();
					return t - this._fastQueryDate > 2 * this._pollingInterval && (this
						._fastQueryDate = t, this._fastBlockNumberPromise = this
						.getBlockNumber().then((t => ((null == this._fastBlockNumber || t > this
								._fastBlockNumber) && (this._fastBlockNumber = t), this
							._fastBlockNumber)))), this._fastBlockNumberPromise
				}
				_setFastBlockNumber(t) {
					null != this._fastBlockNumber && t < this._fastBlockNumber || (this
						._fastQueryDate = oo(), (null == this._fastBlockNumber || t > this
							._fastBlockNumber) && (this._fastBlockNumber = t, this
							._fastBlockNumberPromise = Promise.resolve(t)))
				}
				waitForTransaction(t, e, r) {
					return to(this, void 0, void 0, (function*() {
						return this._waitForTransaction(t, null == e ? 1 : e, r || 0,
							null)
					}))
				}
				_waitForTransaction(t, e, r, n) {
					return to(this, void 0, void 0, (function*() {
						const i = yield this.getTransactionReceipt(t);
						return (i ? i.confirmations : 0) >= e ? i : new Promise(((i,
							o) => {
								const s = [];
								let a = !1;
								const u = function() {
										return !!a || (a = !0, s.forEach((t => {
											t()
										})), !1)
									},
									c = t => {
										t.confirmations < e || u() || i(t)
									};
								if (this.on(t, c), s.push((() => {
										this.removeListener(t, c)
									})), n) {
									let r = n.startBlock,
										i = null;
									const c = s => to(this, void 0, void 0, (
										function*() {
											a || (yield so(1e3), this
												.getTransactionCount(
													n.from)
												.then((l => to(
													this,
													void 0,
													void 0,
													(function
														*
														() {
															if (!
																a
																) {
																if (l <=
																	n
																	.nonce
																	)
																	r =
																	s;
																else {
																	{
																		const
																			e =
																			yield this
																				.getTransaction(
																					t
																					);
																		if (e &&
																			null !=
																			e
																			.blockNumber
																			)
																			return
																	}
																	for (
																		null ==
																		i &&
																		(i = r -
																			3,
																			i <
																			n
																			.startBlock &&
																			(i = n
																				.startBlock
																				)
																			); i <=
																		s;
																		) {
																		if (
																			a)
																			return;
																		const
																			r =
																			yield this
																				.getBlockWithTransactions(
																					i
																					);
																		for (
																			let i =
																				0; i <
																			r
																			.transactions
																			.length; i++
																			) {
																			const
																				s =
																				r
																				.transactions[
																					i
																					];
																			if (s
																				.hash ===
																				t
																				)
																				return;
																			if (s
																				.from ===
																				n
																				.from &&
																				s
																				.nonce ===
																				n
																				.nonce
																				) {
																				if (
																					a)
																					return;
																				const
																					r =
																					yield this
																						.waitForTransaction(
																							s
																							.hash,
																							e
																							);
																				if (
																				u())
																			return;
																				let i =
																					"replaced";
																				return s
																					.data ===
																					n
																					.data &&
																					s
																					.to ===
																					n
																					.to &&
																					s
																					.value
																					.eq(n
																						.value
																						) ?
																					i =
																					"repriced" :
																					"0x" ===
																					s
																					.data &&
																					s
																					.from ===
																					s
																					.to &&
																					s
																					.value
																					.isZero() &&
																					(i =
																						"cancelled"),
																					void o(
																						eo
																						.makeError(
																							"transaction was replaced",
																							S
																							.errors
																							.TRANSACTION_REPLACED, {
																								cancelled: "replaced" ===
																									i ||
																									"cancelled" ===
																									i,
																								reason: i,
																								replacement: this
																									._wrapTransaction(
																										s
																										),
																								hash: t,
																								receipt: r
																							}
																							)
																						)
																			}
																		}
																		i++
																	}
																}
																a || this
																	.once(
																		"block",
																		c
																		)
															}
														}
														)
													)), (
													t => {
														a || this
															.once(
																"block",
																c
																)
													})))
										}));
									if (a) return;
									this.once("block", c), s.push((() => {
										this.removeListener("block",
											c)
									}))
								}
								if ("number" == typeof r && r > 0) {
									const t = setTimeout((() => {
										u() || o(eo.makeError(
											"timeout exceeded",
											S.errors
											.TIMEOUT, {
												timeout: r
											}))
									}), r);
									t.unref && t.unref(), s.push((() => {
										clearTimeout(t)
									}))
								}
							}))
					}))
				}
				getBlockNumber() {
					return to(this, void 0, void 0, (function*() {
						return this._getInternalBlockNumber(0)
					}))
				}
				getGasPrice() {
					return to(this, void 0, void 0, (function*() {
						yield this.getNetwork();
						const t = yield this.perform("getGasPrice", {});
						try {
							return tt.from(t)
						} catch (e) {
							return eo.throwError("bad result from backend", S.errors
								.SERVER_ERROR, {
									method: "getGasPrice",
									result: t,
									error: e
								})
						}
					}))
				}
				getBalance(t, e) {
					return to(this, void 0, void 0, (function*() {
						yield this.getNetwork();
						const r = yield Ut({
							address: this._getAddress(t),
							blockTag: this._getBlockTag(e)
						}), n = yield this.perform("getBalance", r);
						try {
							return tt.from(n)
						} catch (t) {
							return eo.throwError("bad result from backend", S.errors
								.SERVER_ERROR, {
									method: "getBalance",
									params: r,
									result: n,
									error: t
								})
						}
					}))
				}
				getTransactionCount(t, e) {
					return to(this, void 0, void 0, (function*() {
						yield this.getNetwork();
						const r = yield Ut({
							address: this._getAddress(t),
							blockTag: this._getBlockTag(e)
						}), n = yield this.perform("getTransactionCount", r);
						try {
							return tt.from(n).toNumber()
						} catch (t) {
							return eo.throwError("bad result from backend", S.errors
								.SERVER_ERROR, {
									method: "getTransactionCount",
									params: r,
									result: n,
									error: t
								})
						}
					}))
				}
				getCode(t, e) {
					return to(this, void 0, void 0, (function*() {
						yield this.getNetwork();
						const r = yield Ut({
							address: this._getAddress(t),
							blockTag: this._getBlockTag(e)
						}), n = yield this.perform("getCode", r);
						try {
							return U(n)
						} catch (t) {
							return eo.throwError("bad result from backend", S.errors
								.SERVER_ERROR, {
									method: "getCode",
									params: r,
									result: n,
									error: t
								})
						}
					}))
				}
				getStorageAt(t, e, r) {
					return to(this, void 0, void 0, (function*() {
						yield this.getNetwork();
						const n = yield Ut({
							address: this._getAddress(t),
							blockTag: this._getBlockTag(r),
							position: Promise.resolve(e).then((t => G(t)))
						}), i = yield this.perform("getStorageAt", n);
						try {
							return U(i)
						} catch (t) {
							return eo.throwError("bad result from backend", S.errors
								.SERVER_ERROR, {
									method: "getStorageAt",
									params: n,
									result: i,
									error: t
								})
						}
					}))
				}
				_wrapTransaction(t, e, r) {
					if (null != e && 32 !== D(e)) throw new Error(
						"invalid response - sendTransaction");
					const n = t;
					return null != e && t.hash !== e && eo.throwError(
						"Transaction hash mismatch from Provider.sendTransaction.", S.errors
						.UNKNOWN_ERROR, {
							expectedHash: t.hash,
							returnedHash: e
						}), n.wait = (e, n) => to(this, void 0, void 0, (function*() {
						let i;
						null == e && (e = 1), null == n && (n = 0), 0 !== e && null !=
							r && (i = {
								data: t.data,
								from: t.from,
								nonce: t.nonce,
								to: t.to,
								value: t.value,
								startBlock: r
							});
						const o = yield this._waitForTransaction(t.hash, e, n, i);
						return null == o && 0 === e ? null : (this._emitted["t:" + t
								.hash] = o.blockNumber, 0 === o.status && eo
							.throwError("transaction failed", S.errors
								.CALL_EXCEPTION, {
									transactionHash: t.hash,
									transaction: t,
									receipt: o
								}), o)
					})), n
				}
				sendTransaction(t) {
					return to(this, void 0, void 0, (function*() {
						yield this.getNetwork();
						const e = yield Promise.resolve(t).then((t => U(t))), r = this
							.formatter.transaction(t);
						null == r.confirmations && (r.confirmations = 0);
						const n = yield this._getInternalBlockNumber(100 + 2 * this
							.pollingInterval);
						try {
							const t = yield this.perform("sendTransaction", {
								signedTransaction: e
							});
							return this._wrapTransaction(r, t, n)
						} catch (t) {
							throw t.transaction = r, t.transactionHash = r.hash, t
						}
					}))
				}
				_getTransactionRequest(t) {
					return to(this, void 0, void 0, (function*() {
						const e = yield t, r = {};
						return ["from", "to"].forEach((t => {
							null != e[t] && (r[t] = Promise.resolve(e[t])
								.then((t => t ? this._getAddress(t) :
									null)))
						})), ["gasLimit", "gasPrice", "maxFeePerGas",
							"maxPriorityFeePerGas", "value"
						].forEach((t => {
							null != e[t] && (r[t] = Promise.resolve(e[t])
								.then((t => t ? tt.from(t) : null)))
						})), ["type"].forEach((t => {
							null != e[t] && (r[t] = Promise.resolve(e[t])
								.then((t => null != t ? t : null)))
						})), e.accessList && (r.accessList = this.formatter
							.accessList(e.accessList)), ["data"].forEach((t => {
							null != e[t] && (r[t] = Promise.resolve(e[t])
								.then((t => t ? U(t) : null)))
						})), this.formatter.transactionRequest(yield Ut(r))
					}))
				}
				_getFilter(t) {
					return to(this, void 0, void 0, (function*() {
						t = yield t;
						const e = {};
						return null != t.address && (e.address = this._getAddress(t
							.address)), ["blockHash", "topics"].forEach((r => {
							null != t[r] && (e[r] = t[r])
						})), ["fromBlock", "toBlock"].forEach((r => {
							null != t[r] && (e[r] = this._getBlockTag(t[r]))
						})), this.formatter.filter(yield Ut(e))
					}))
				}
				_call(t, e, r) {
					return to(this, void 0, void 0, (function*() {
						r >= 10 && eo.throwError(
							"CCIP read exceeded maximum redirections", S.errors
							.SERVER_ERROR, {
								redirects: r,
								transaction: t
							});
						const n = t.to,
							i = yield this.perform("call", {
								transaction: t,
								blockTag: e
							});
						if (r >= 0 && "latest" === e && null != n && "0x556f1830" === i
							.substring(0, 10) && D(i) % 32 == 4) try {
							const o = q(i, 4),
								s = q(o, 0, 32);
							tt.from(s).eq(n) || eo.throwError(
								"CCIP Read sender did not match", S.errors
								.CALL_EXCEPTION, {
									name: "OffchainLookup",
									signature: "OffchainLookup(address,string[],bytes,bytes4,bytes)",
									transaction: t,
									data: i
								});
							const a = [],
								u = tt.from(q(o, 32, 64)).toNumber(),
								c = tt.from(q(o, u, u + 32)).toNumber(),
								l = q(o, u + 32);
							for (let e = 0; e < c; e++) {
								const r = mo(l, 32 * e);
								null == r && eo.throwError(
									"CCIP Read contained corrupt URL string", S
									.errors.CALL_EXCEPTION, {
										name: "OffchainLookup",
										signature: "OffchainLookup(address,string[],bytes,bytes4,bytes)",
										transaction: t,
										data: i
									}), a.push(r)
							}
							const h = go(o, 64);
							tt.from(q(o, 100, 128)).isZero() || eo.throwError(
								"CCIP Read callback selector included junk", S
								.errors.CALL_EXCEPTION, {
									name: "OffchainLookup",
									signature: "OffchainLookup(address,string[],bytes,bytes4,bytes)",
									transaction: t,
									data: i
								});
							const f = q(o, 96, 100),
								d = go(o, 128),
								p = yield this.ccipReadFetch(t, h, a);
							null == p && eo.throwError(
								"CCIP Read disabled or provided no URLs", S
								.errors.CALL_EXCEPTION, {
									name: "OffchainLookup",
									signature: "OffchainLookup(address,string[],bytes,bytes4,bytes)",
									transaction: t,
									data: i
								});
							const m = {
								to: n,
								data: z([f, wo([p, d])])
							};
							return this._call(m, e, r + 1)
						} catch (t) {
							if (t.code === S.errors.SERVER_ERROR) throw t
						}
						try {
							return U(i)
						} catch (r) {
							return eo.throwError("bad result from backend", S.errors
								.SERVER_ERROR, {
									method: "call",
									params: {
										transaction: t,
										blockTag: e
									},
									result: i,
									error: r
								})
						}
					}))
				}
				call(t, e) {
					return to(this, void 0, void 0, (function*() {
						yield this.getNetwork();
						const r = yield Ut({
							transaction: this._getTransactionRequest(t),
							blockTag: this._getBlockTag(e),
							ccipReadEnabled: Promise.resolve(t
								.ccipReadEnabled)
						});
						return this._call(r.transaction, r.blockTag, r.ccipReadEnabled ?
							0 : -1)
					}))
				}
				estimateGas(t) {
					return to(this, void 0, void 0, (function*() {
						yield this.getNetwork();
						const e = yield Ut({
							transaction: this._getTransactionRequest(t)
						}), r = yield this.perform("estimateGas", e);
						try {
							return tt.from(r)
						} catch (t) {
							return eo.throwError("bad result from backend", S.errors
								.SERVER_ERROR, {
									method: "estimateGas",
									params: e,
									result: r,
									error: t
								})
						}
					}))
				}
				_getAddress(t) {
					return to(this, void 0, void 0, (function*() {
						"string" != typeof(t = yield t) && eo.throwArgumentError(
							"invalid address or ENS name", "name", t);
						const e = yield this.resolveName(t);
						return null == e && eo.throwError("ENS name not configured", S
							.errors.UNSUPPORTED_OPERATION, {
								operation: `resolveName(${JSON.stringify(t)})`
							}), e
					}))
				}
				_getBlock(t, e) {
					return to(this, void 0, void 0, (function*() {
						yield this.getNetwork(), t = yield t;
						let r = -128;
						const n = {
							includeTransactions: !!e
						};
						if (j(t, 32)) n.blockHash = t;
						else try {
							n.blockTag = yield this._getBlockTag(t), j(n
								.blockTag) && (r = parseInt(n.blockTag
									.substring(2), 16))
						} catch (e) {
							eo.throwArgumentError("invalid block hash or block tag",
								"blockHashOrBlockTag", t)
						}
						return xi((() => to(this, void 0, void 0, (function*() {
							const t = yield this.perform("getBlock",
								n);
							if (null == t) return null != n
								.blockHash && null == this
								._emitted["b:" + n.blockHash] ||
								null != n.blockTag && r > this
								._emitted.block ? null : void 0;
							if (e) {
								let e = null;
								for (let r = 0; r < t.transactions
									.length; r++) {
									const n = t.transactions[r];
									if (null == n.blockNumber) n
										.confirmations = 0;
									else if (null == n
										.confirmations) {
										null == e && (e = yield this
											._getInternalBlockNumber(
												100 + 2 *
												this
												.pollingInterval
												));
										let t = e - n.blockNumber +
											1;
										t <= 0 && (t = 1), n
											.confirmations = t
									}
								}
								const r = this.formatter
									.blockWithTransactions(t);
								return r.transactions = r
									.transactions.map((t => this
										._wrapTransaction(t))), r
							}
							return this.formatter.block(t)
						}))), {
							oncePoll: this
						})
					}))
				}
				getBlock(t) {
					return this._getBlock(t, !1)
				}
				getBlockWithTransactions(t) {
					return this._getBlock(t, !0)
				}
				getTransaction(t) {
					return to(this, void 0, void 0, (function*() {
						yield this.getNetwork(), t = yield t;
						const e = {
							transactionHash: this.formatter.hash(t, !0)
						};
						return xi((() => to(this, void 0, void 0, (function*() {
							const r = yield this.perform(
								"getTransaction", e);
							if (null == r) return null == this
								._emitted["t:" + t] ? null :
								void 0;
							const n = this.formatter
								.transactionResponse(r);
							if (null == n.blockNumber) n
								.confirmations = 0;
							else if (null == n.confirmations) {
								let t = (yield this
										._getInternalBlockNumber(
											100 + 2 * this
											.pollingInterval)) - n
									.blockNumber + 1;
								t <= 0 && (t = 1), n.confirmations =
									t
							}
							return this._wrapTransaction(n)
						}))), {
							oncePoll: this
						})
					}))
				}
				getTransactionReceipt(t) {
					return to(this, void 0, void 0, (function*() {
						yield this.getNetwork(), t = yield t;
						const e = {
							transactionHash: this.formatter.hash(t, !0)
						};
						return xi((() => to(this, void 0, void 0, (function*() {
							const r = yield this.perform(
								"getTransactionReceipt", e);
							if (null == r) return null == this
								._emitted["t:" + t] ? null :
								void 0;
							if (null == r.blockHash) return;
							const n = this.formatter.receipt(r);
							if (null == n.blockNumber) n
								.confirmations = 0;
							else if (null == n.confirmations) {
								let t = (yield this
										._getInternalBlockNumber(
											100 + 2 * this
											.pollingInterval)) - n
									.blockNumber + 1;
								t <= 0 && (t = 1), n.confirmations =
									t
							}
							return n
						}))), {
							oncePoll: this
						})
					}))
				}
				getLogs(t) {
					return to(this, void 0, void 0, (function*() {
						yield this.getNetwork();
						const e = yield Ut({
							filter: this._getFilter(t)
						}), r = yield this.perform("getLogs", e);
						return r.forEach((t => {
							null == t.removed && (t.removed = !1)
						})), Yi.arrayOf(this.formatter.filterLog.bind(this
							.formatter))(r)
					}))
				}
				getEtherPrice() {
					return to(this, void 0, void 0, (function*() {
						return yield this.getNetwork(), this.perform(
							"getEtherPrice", {})
					}))
				}
				_getBlockTag(t) {
					return to(this, void 0, void 0, (function*() {
						if ("number" == typeof(t = yield t) && t < 0) {
							t % 1 && eo.throwArgumentError("invalid BlockTag",
								"blockTag", t);
							let e = yield this._getInternalBlockNumber(100 + 2 * this
								.pollingInterval);
							return e += t, e < 0 && (e = 0), this.formatter.blockTag(e)
						}
						return this.formatter.blockTag(t)
					}))
				}
				getResolver(t) {
					return to(this, void 0, void 0, (function*() {
						let e = t;
						for (;;) {
							if ("" === e || "." === e) return null;
							if ("eth" !== t && "eth" === e) return null;
							const r = yield this._getResolver(e, "getResolver");
							if (null != r) {
								const n = new Eo(this, r, t);
								return e === t || (yield n.supportsWildcard()) ? n :
									null
							}
							e = e.split(".").slice(1).join(".")
						}
					}))
				}
				_getResolver(t, e) {
					return to(this, void 0, void 0, (function*() {
						null == e && (e = "ENS");
						const r = yield this.getNetwork();
						r.ensAddress || eo.throwError("network does not support ENS", S
							.errors.UNSUPPORTED_OPERATION, {
								operation: e,
								network: r.name
							});
						try {
							const e = yield this.call({
								to: r.ensAddress,
								data: "0x0178b8bf" + qi(t).substring(2)
							});
							return this.formatter.callAddress(e)
						} catch (t) {}
						return null
					}))
				}
				resolveName(t) {
					return to(this, void 0, void 0, (function*() {
						t = yield t;
						try {
							return Promise.resolve(this.formatter.address(t))
						} catch (e) {
							if (j(t)) throw e
						}
						"string" != typeof t && eo.throwArgumentError(
							"invalid ENS name", "name", t);
						const e = yield this.getResolver(t);
						return e ? yield e.getAddress(): null
					}))
				}
				lookupAddress(t) {
					return to(this, void 0, void 0, (function*() {
						t = yield t;
						const e = (t = this.formatter.address(t)).substring(2)
							.toLowerCase() + ".addr.reverse",
							r = yield this._getResolver(e, "lookupAddress");
						if (null == r) return null;
						const n = mo(yield this.call({
							to: r,
							data: "0x691f3431" + qi(e).substring(2)
						}), 0);
						return (yield this.resolveName(n)) != t ? null : n
					}))
				}
				getAvatar(t) {
					return to(this, void 0, void 0, (function*() {
						let e = null;
						if (j(t)) {
							const r = this.formatter.address(t).substring(2)
								.toLowerCase() + ".addr.reverse",
								n = yield this._getResolver(r, "getAvatar");
							if (!n) return null;
							e = new Eo(this, n, r);
							try {
								const t = yield e.getAvatar();
								if (t) return t.url
							} catch (t) {
								if (t.code !== S.errors.CALL_EXCEPTION) throw t
							}
							try {
								const t = mo(yield this.call({
									to: n,
									data: "0x691f3431" + qi(r)
										.substring(2)
								}), 0);
								e = yield this.getResolver(t)
							} catch (t) {
								if (t.code !== S.errors.CALL_EXCEPTION) throw t;
								return null
							}
						} else if (e = yield this.getResolver(t), !e) return null;
						const r = yield e.getAvatar();
						return null == r ? null : r.url
					}))
				}
				perform(t, e) {
					return eo.throwError(t + " not implemented", S.errors.NOT_IMPLEMENTED, {
						operation: t
					})
				}
				_startEvent(t) {
					this.polling = this._events.filter((t => t.pollable())).length > 0
				}
				_stopEvent(t) {
					this.polling = this._events.filter((t => t.pollable())).length > 0
				}
				_addEventListener(t, e, r) {
					const n = new uo(io(t), e, r);
					return this._events.push(n), this._startEvent(n), this
				}
				on(t, e) {
					return this._addEventListener(t, e, !1)
				}
				once(t, e) {
					return this._addEventListener(t, e, !0)
				}
				emit(t, ...e) {
					let r = !1,
						n = [],
						i = io(t);
					return this._events = this._events.filter((t => t.tag !== i || (setTimeout((
					() => {
							t.listener.apply(this, e)
						}), 0), r = !0, !t.once || (n.push(t), !1)))), n.forEach((t => {
						this._stopEvent(t)
					})), r
				}
				listenerCount(t) {
					if (!t) return this._events.length;
					let e = io(t);
					return this._events.filter((t => t.tag === e)).length
				}
				listeners(t) {
					if (null == t) return this._events.map((t => t.listener));
					let e = io(t);
					return this._events.filter((t => t.tag === e)).map((t => t.listener))
				}
				off(t, e) {
					if (null == e) return this.removeAllListeners(t);
					const r = [];
					let n = !1,
						i = io(t);
					return this._events = this._events.filter((t => t.tag !== i || t.listener !=
						e || (!!n || (n = !0, r.push(t), !1)))), r.forEach((t => {
						this._stopEvent(t)
					})), this
				}
				removeAllListeners(t) {
					let e = [];
					if (null == t) e = this._events, this._events = [];
					else {
						const r = io(t);
						this._events = this._events.filter((t => t.tag !== r || (e.push(t), !1)))
					}
					return e.forEach((t => {
						this._stopEvent(t)
					})), this
				}
			}
			var ko = function(t, e, r, n) {
				return new(r || (r = Promise))((function(i, o) {
					function s(t) {
						try {
							u(n.next(t))
						} catch (t) {
							o(t)
						}
					}

					function a(t) {
						try {
							u(n.throw(t))
						} catch (t) {
							o(t)
						}
					}

					function u(t) {
						var e;
						t.done ? i(t.value) : (e = t.value, e instanceof r ? e : new r((
							function(t) {
								t(e)
							}))).then(s, a)
					}
					u((n = n.apply(t, e || [])).next())
				}))
			};
			const No = new S(Ai),
				So = ["call", "estimateGas"];

			function Po(t) {
				if (null == t) return null;
				if ("string" == typeof t.message && t.message.match("reverted") && j(t.data)) return {
					message: t.message,
					data: t.data
				};
				if ("object" == typeof t) {
					for (const e in t) {
						const r = Po(t[e]);
						if (r) return r
					}
					return null
				}
				if ("string" == typeof t) try {
					return Po(JSON.parse(t))
				} catch (t) {}
				return null
			}

			function Mo(t, e, r) {
				if ("call" === t) {
					const t = Po(e);
					if (t) return t.data;
					No.throwError("missing revert data in call exception", S.errors.CALL_EXCEPTION, {
						error: e,
						data: "0x"
					})
				}
				let n = e.message;
				e.code === S.errors.SERVER_ERROR && e.error && "string" == typeof e.error.message ? n =
					e.error.message : "string" == typeof e.body ? n = e.body : "string" == typeof e
					.responseText && (n = e.responseText), n = (n || "").toLowerCase();
				const i = r.transaction || r.signedTransaction;
				throw n.match(/insufficient funds|base fee exceeds gas limit/) && No.throwError(
						"insufficient funds for intrinsic transaction cost", S.errors
						.INSUFFICIENT_FUNDS, {
							error: e,
							method: t,
							transaction: i
						}), n.match(/nonce too low/) && No.throwError("nonce has already been used", S
						.errors.NONCE_EXPIRED, {
							error: e,
							method: t,
							transaction: i
						}), n.match(/replacement transaction underpriced/) && No.throwError(
						"replacement fee too low", S.errors.REPLACEMENT_UNDERPRICED, {
							error: e,
							method: t,
							transaction: i
						}), n.match(/only replay-protected/) && No.throwError(
						"legacy pre-eip-155 transactions not supported", S.errors
						.UNSUPPORTED_OPERATION, {
							error: e,
							method: t,
							transaction: i
						}), So.indexOf(t) >= 0 && n.match(
						/gas required exceeds allowance|always failing transaction|execution reverted/
						) && No.throwError(
						"cannot estimate gas; transaction may fail or may require manual gas limit", S
						.errors.UNPREDICTABLE_GAS_LIMIT, {
							error: e,
							method: t,
							transaction: i
						}), e
			}

			function Oo(t) {
				return new Promise((function(e) {
					setTimeout(e, t)
				}))
			}

			function Io(t) {
				if (t.error) {
					const e = new Error(t.error.message);
					throw e.code = t.error.code, e.data = t.error.data, e
				}
				return t.result
			}

			function To(t) {
				return t ? t.toLowerCase() : t
			}
			const Ro = {};
			class Co extends gr {
				constructor(t, e, r) {
					if (No.checkNew(new.target, Co), super(), t !== Ro) throw new Error(
						"do not call the JsonRpcSigner constructor directly; use provider.getSigner"
						);
					jt(this, "provider", e), null == r && (r = 0), "string" == typeof r ? (jt(this,
						"_address", this.provider.formatter.address(r)), jt(this, "_index",
						null)) : "number" == typeof r ? (jt(this, "_index", r), jt(this,
						"_address", null)) : No.throwArgumentError("invalid address or index",
						"addressOrIndex", r)
				}
				connect(t) {
					return No.throwError("cannot alter JSON-RPC Signer connection", S.errors
						.UNSUPPORTED_OPERATION, {
							operation: "connect"
						})
				}
				connectUnchecked() {
					return new Bo(Ro, this.provider, this._address || this._index)
				}
				getAddress() {
					return this._address ? Promise.resolve(this._address) : this.provider.send(
						"eth_accounts", []).then((t => (t.length <= this._index && No
						.throwError("unknown account #" + this._index, S.errors
							.UNSUPPORTED_OPERATION, {
								operation: "getAddress"
							}), this.provider.formatter.address(t[this._index]))))
				}
				sendUncheckedTransaction(t) {
					t = Dt(t);
					const e = this.getAddress().then((t => (t && (t = t.toLowerCase()), t)));
					if (null == t.gasLimit) {
						const r = Dt(t);
						r.from = e, t.gasLimit = this.provider.estimateGas(r)
					}
					return null != t.to && (t.to = Promise.resolve(t.to).then((t => ko(this, void 0,
						void 0, (function*() {
							if (null == t) return null;
							const e = yield this.provider.resolveName(t);
							return null == e && No.throwArgumentError(
								"provided ENS name resolves to null",
								"tx.to", t), e
						}))))), Ut({
						tx: Ut(t),
						sender: e
					}).then((({
						tx: e,
						sender: r
					}) => {
						null != e.from ? e.from.toLowerCase() !== r && No
							.throwArgumentError("from address mismatch", "transaction",
								t) : e.from = r;
						const n = this.provider.constructor.hexlifyTransaction(e, {
							from: !0
						});
						return this.provider.send("eth_sendTransaction", [n]).then((t =>
							t), (t => Mo("sendTransaction", t, n)))
					}))
				}
				signTransaction(t) {
					return No.throwError("signing transactions is unsupported", S.errors
						.UNSUPPORTED_OPERATION, {
							operation: "signTransaction"
						})
				}
				sendTransaction(t) {
					return ko(this, void 0, void 0, (function*() {
						const e = yield this.provider._getInternalBlockNumber(100 + 2 *
							this.provider.pollingInterval), r = yield this
							.sendUncheckedTransaction(t);
						try {
							return yield xi((() => ko(this, void 0, void 0, (function*
						() {
								const t = yield this.provider
									.getTransaction(r);
								if (null !== t) return this
									.provider
									._wrapTransaction(t, r,
										e)
							}))), {
								oncePoll: this.provider
							})
						} catch (t) {
							throw t.transactionHash = r, t
						}
					}))
				}
				signMessage(t) {
					return ko(this, void 0, void 0, (function*() {
						const e = "string" == typeof t ? ne(t) : t,
							r = yield this.getAddress();
						return yield this.provider.send("personal_sign", [U(e), r
							.toLowerCase()
						])
					}))
				}
				_legacySignMessage(t) {
					return ko(this, void 0, void 0, (function*() {
						const e = "string" == typeof t ? ne(t) : t,
							r = yield this.getAddress();
						return yield this.provider.send("eth_sign", [r.toLowerCase(), U(
							e)])
					}))
				}
				_signTypedData(t, e, r) {
					return ko(this, void 0, void 0, (function*() {
						const n = yield di.resolveNames(t, e, r, (t => this.provider
							.resolveName(t))), i = yield this.getAddress();
						return yield this.provider.send("eth_signTypedData_v4", [i
							.toLowerCase(), JSON.stringify(di.getPayload(n
								.domain, e, n.value))
						])
					}))
				}
				unlock(t) {
					return ko(this, void 0, void 0, (function*() {
						const e = this.provider,
							r = yield this.getAddress();
						return e.send("personal_unlockAccount", [r.toLowerCase(), t,
							null
						])
					}))
				}
			}
			class Bo extends Co {
				sendTransaction(t) {
					return this.sendUncheckedTransaction(t).then((t => ({
						hash: t,
						nonce: null,
						gasLimit: null,
						gasPrice: null,
						data: null,
						value: null,
						chainId: null,
						confirmations: 0,
						from: null,
						wait: e => this.provider.waitForTransaction(t, e)
					})))
				}
			}
			const Fo = {
				chainId: !0,
				data: !0,
				gasLimit: !0,
				gasPrice: !0,
				nonce: !0,
				to: !0,
				value: !0,
				type: !0,
				accessList: !0,
				maxFeePerGas: !0,
				maxPriorityFeePerGas: !0
			};
			class jo extends Ao {
				constructor(t, e) {
					No.checkNew(new.target, jo);
					let r = e;
					null == r && (r = new Promise(((t, e) => {
						setTimeout((() => {
							this.detectNetwork().then((e => {
								t(e)
							}), (t => {
								e(t)
							}))
						}), 0)
					}))), super(r), t || (t = Lt(this.constructor, "defaultUrl")()), jt(this,
						"connection", "string" == typeof t ? Object.freeze({
							url: t
						}) : Object.freeze(Dt(t))), this._nextId = 42
				}
				get _cache() {
					return null == this._eventLoopCache && (this._eventLoopCache = {}), this
						._eventLoopCache
				}
				static defaultUrl() {
					return "http://localhost:8545"
				}
				detectNetwork() {
					return this._cache.detectNetwork || (this._cache.detectNetwork = this
						._uncachedDetectNetwork(), setTimeout((() => {
							this._cache.detectNetwork = null
						}), 0)), this._cache.detectNetwork
				}
				_uncachedDetectNetwork() {
					return ko(this, void 0, void 0, (function*() {
						yield Oo(0);
						let t = null;
						try {
							t = yield this.send("eth_chainId", [])
						} catch (e) {
							try {
								t = yield this.send("net_version", [])
							} catch (t) {}
						}
						if (null != t) {
							const e = Lt(this.constructor, "getNetwork");
							try {
								return e(tt.from(t).toNumber())
							} catch (e) {
								return No.throwError("could not detect network", S
									.errors.NETWORK_ERROR, {
										chainId: t,
										event: "invalidNetwork",
										serverError: e
									})
							}
						}
						return No.throwError("could not detect network", S.errors
							.NETWORK_ERROR, {
								event: "noNetwork"
							})
					}))
				}
				getSigner(t) {
					return new Co(Ro, this, t)
				}
				getUncheckedSigner(t) {
					return this.getSigner(t).connectUnchecked()
				}
				listAccounts() {
					return this.send("eth_accounts", []).then((t => t.map((t => this.formatter
						.address(t)))))
				}
				send(t, e) {
					const r = {
						method: t,
						params: e,
						id: this._nextId++,
						jsonrpc: "2.0"
					};
					this.emit("debug", {
						action: "request",
						request: Vt(r),
						provider: this
					});
					const n = ["eth_chainId", "eth_blockNumber"].indexOf(t) >= 0;
					if (n && this._cache[t]) return this._cache[t];
					const i = _i(this.connection, JSON.stringify(r), Io).then((t => (this.emit(
						"debug", {
							action: "response",
							request: r,
							response: t,
							provider: this
						}), t)), (t => {
						throw this.emit("debug", {
							action: "response",
							error: t,
							request: r,
							provider: this
						}), t
					}));
					return n && (this._cache[t] = i, setTimeout((() => {
						this._cache[t] = null
					}), 0)), i
				}
				prepareRequest(t, e) {
					switch (t) {
						case "getBlockNumber":
							return ["eth_blockNumber", []];
						case "getGasPrice":
							return ["eth_gasPrice", []];
						case "getBalance":
							return ["eth_getBalance", [To(e.address), e.blockTag]];
						case "getTransactionCount":
							return ["eth_getTransactionCount", [To(e.address), e.blockTag]];
						case "getCode":
							return ["eth_getCode", [To(e.address), e.blockTag]];
						case "getStorageAt":
							return ["eth_getStorageAt", [To(e.address), e.position, e.blockTag]];
						case "sendTransaction":
							return ["eth_sendRawTransaction", [e.signedTransaction]];
						case "getBlock":
							return e.blockTag ? ["eth_getBlockByNumber", [e.blockTag, !!e
								.includeTransactions
							]] : e.blockHash ? ["eth_getBlockByHash", [e.blockHash, !!e
								.includeTransactions
							]] : null;
						case "getTransaction":
							return ["eth_getTransactionByHash", [e.transactionHash]];
						case "getTransactionReceipt":
							return ["eth_getTransactionReceipt", [e.transactionHash]];
						case "call":
							return ["eth_call", [Lt(this.constructor, "hexlifyTransaction")(e
								.transaction, {
									from: !0
								}), e.blockTag]];
						case "estimateGas":
							return ["eth_estimateGas", [Lt(this.constructor, "hexlifyTransaction")(e
								.transaction, {
									from: !0
								})]];
						case "getLogs":
							return e.filter && null != e.filter.address && (e.filter.address = To(e
								.filter.address)), ["eth_getLogs", [e.filter]]
					}
					return null
				}
				perform(t, e) {
					return ko(this, void 0, void 0, (function*() {
						if ("call" === t || "estimateGas" === t) {
							const t = e.transaction;
							if (t && null != t.type && tt.from(t.type).isZero() &&
								null == t.maxFeePerGas && null == t.maxPriorityFeePerGas
								) {
								const r = yield this.getFeeData();
								null == r.maxFeePerGas && null == r
									.maxPriorityFeePerGas && ((e = Dt(e)).transaction =
										Dt(t), delete e.transaction.type)
							}
						}
						const r = this.prepareRequest(t, e);
						null == r && No.throwError(t + " not implemented", S.errors
							.NOT_IMPLEMENTED, {
								operation: t
							});
						try {
							return yield this.send(r[0], r[1])
						} catch (r) {
							return Mo(t, r, e)
						}
					}))
				}
				_startEvent(t) {
					"pending" === t.tag && this._startPending(), super._startEvent(t)
				}
				_startPending() {
					if (null != this._pendingFilter) return;
					const t = this,
						e = this.send("eth_newPendingTransactionFilter", []);
					this._pendingFilter = e, e.then((function(r) {
						return function n() {
							t.send("eth_getFilterChanges", [r]).then((function(r) {
								if (t._pendingFilter != e) return null;
								let n = Promise.resolve();
								return r.forEach((function(e) {
									t._emitted["t:" + e
											.toLowerCase()
											] = "pending",
										n = n.then((
											function() {
												return t
													.getTransaction(
														e
														)
													.then(
														(function(
															e
															) {
															return t
																.emit(
																	"pending",
																	e
																	),
																null
														})
														)
											}))
								})), n.then((function() {
									return Oo(1e3)
								}))
							})).then((function() {
								if (t._pendingFilter == e)
								return setTimeout((function() {
										n()
									}), 0), null;
								t.send("eth_uninstallFilter", [r])
							})).catch((t => {}))
						}(), r
					})).catch((t => {}))
				}
				_stopEvent(t) {
					"pending" === t.tag && 0 === this.listenerCount("pending") && (this
						._pendingFilter = null), super._stopEvent(t)
				}
				static hexlifyTransaction(t, e) {
					const r = Dt(Fo);
					if (e)
						for (const t in e) e[t] && (r[t] = !0);
					var n, i;
					i = r, (n = t) && "object" == typeof n || Ft.throwArgumentError(
						"invalid object", "object", n), Object.keys(n).forEach((t => {
						i[t] || Ft.throwArgumentError("invalid object key - " + t,
							"transaction:" + t, n)
					}));
					const o = {};
					return ["chainId", "gasLimit", "gasPrice", "type", "maxFeePerGas",
						"maxPriorityFeePerGas", "nonce", "value"
					].forEach((function(e) {
						if (null == t[e]) return;
						const r = G(t[e]);
						"gasLimit" === e && (e = "gas"), o[e] = r
					})), ["from", "to", "data"].forEach((function(e) {
						null != t[e] && (o[e] = U(t[e]))
					})), t.accessList && (o.accessList = mn(t.accessList)), o
				}
			}
			var Lo = r(9342),
				Uo = r.n(Lo);
			class Do {
				constructor({
					url: t,
					explorer: e
				}) {
					this.provider = new jo({
						url: t
					}), this.explorer = new qo(e)
				}
				async getAccount(t) {
					return {
						balance: await this.provider.getBalance(t),
						codeHash: at(await this.provider.getCode(t))
					}
				}
				async executeContract({
					address: t,
					abi: e
				}, r, n = [], i = {}) {
					const o = new Cn(t, e, this.provider);
					return await o.populateTransaction[r](...n, i)
				}
				async getTransactions(t, e, r) {
					return {
						length: 0,
						list: (await this.explorer.getHistory(t, e, r)).result
					}
				}
				parseEther(t) {
					return Kn(t)
				}
			}
			class qo {
				constructor(t) {
					this.url = t
				}
				async getHistory(t, e = 0, r = 10) {
					const n = {
							module: "account",
							action: "txlist",
							address: t,
							startblock: 0,
							endblock: 99999999,
							page: e + 1,
							offset: r,
							sort: "desc"
						},
						i = await fetch(`${this.url}?${Uo().stringify(n)}`);
					return await i.json()
				}
			}
			class zo {
				constructor({
					extension: t
				} = {}) {
					this._client = null, t ? "BinanceChainWallet" === t ? this
						.initBinanceChainWallet() : "MetaMask" === t && this.initMetaMask() : this
						.initBinanceChainWallet() || this.initMetaMask(), this._browserExtension ||
						console.warn(
							"Unable to init the dApp. No compatible browser extension is found.")
				}
				initBinanceChainWallet() {
					if (window.BinanceChain && window.BinanceChain.bnbSign) return this
						._browserExtension = new Rt(window.BinanceChain), this._browserExtension
				}
				initMetaMask() {
					if (window.ethereum && window.ethereum.isMetaMask) return this
						._browserExtension = new Ct(window.ethereum), this._browserExtension
				}
				get browserExtension() {
					return this._browserExtension
				}
				get isBrowserExtensionInstalled() {
					return Boolean(this.browserExtension)
				}
				get isBrowserExtensionEnabled() {
					return this.isBrowserExtensionInstalled && this.browserExtension.isEnabled
				}
				async enableBrowserExtension() {
					const t = this.isBrowserExtensionInstalled && await this.browserExtension
						.enable();
					return this.initRpcFromChainId(t), t
				}
				onEnabled(t) {
					return this.isBrowserExtensionInstalled && this.browserExtension.onEnabled(t)
				}
				get network() {
					return this.isBrowserExtensionInstalled && this.browserExtension.getNetwork()
				}
				onNetworkChanged(t) {
					return this.isBrowserExtensionInstalled && this.browserExtension
						.onNetworkChanged((e => {
							this.initRpcFromChainId(e.chainId), t(e)
						}))
				}
				initRpcFromChainId(t) {
					if (t) {
						const e = Tt.find((e => e.chainId === t));
						e && (this._client = new Do(e))
					}
				}
				get rpc() {
					return this._client && this._client.provider
				}
				get explorer() {
					return this._client && this._client.explorer
				}
				get currentAccount() {
					return this.isBrowserExtensionInstalled && this.browserExtension.currentAccount
				}
				onAccountChanged(t) {
					return this.isBrowserExtensionInstalled && this.browserExtension
						.onAccountChanged(t)
				}
				async getAllAccounts() {
					return this.isBrowserExtensionInstalled && await this.browserExtension
						.getAllAccounts()
				}
				async signMessage(t) {
					return this.isBrowserExtensionInstalled && await this.browserExtension
						.signMessage(t)
				}
				async signTypedData(t) {
					return this.isBrowserExtensionInstalled && await this.browserExtension
						.signTypedData(t)
				}
				async sendTransaction({
					from: t,
					to: e,
					value: r,
					...n
				}) {
					return this.isBrowserExtensionInstalled && await this.browserExtension
						.sendTransaction({
							from: t,
							to: e,
							value: r.toHexString(),
							...n
						})
				}
				async executeContract({
					address: t,
					abi: e
				}, r, n = [], i = {}) {
					return this._client.executeContract({
						address: t,
						abi: e
					}, r, n, i)
				}
				parseEther(t) {
					return this._client.parseEther(t)
				}
			}
			var Go = function() {
					function t(e) {
						a(this, t), this.name = "MetaMask", this._accounts = [], this._enabled = !1,
							e && (e.isImToken || e.isCoinbaseWallet) && (this.ethereum = e, this
								._chainId = void 0, this._chainId = void 0, this._onEnabled = void 0,
								this._currentAccount = void 0)
					}
					var e, r, n, i, o;
					return c(t, [{
						key: "isEnabled",
						get: function() {
							return this._enabled
						}
					}, {
						key: "enable",
						value: (o = s(f().mark((function t() {
							var e, r = this;
							return f().wrap((function(t) {
								for (;;) switch (t.prev = t
									.next) {
									case 0:
										return t.next =
											2, this
											.ethereum
											.request({
												method: "eth_requestAccounts"
											});
									case 2:
										return e = t
											.sent, this
											._currentAccount = {
												address: e[
													0
													]
											}, t.next =
											6, this
											.ethereum
											.request({
												method: "eth_chainId"
											});
									case 6:
										return this
											._chainId =
											t.sent, this
											.ethereum
											.on("chainChanged",
												(function(
													t
													) {
													r._chainId =
														t,
														r
														._onNetworkChanged &&
														r
														._onNetworkChanged(
															r
															.getNetwork()
															)
												})),
											this
											.ethereum
											.on("accountsChanged",
												(function(
													t
													) {
													r._currentAccount = {
															address: t[
																0
																]
														},
														r
														._onAccountChanged &&
														r
														._onAccountChanged({
															address: t[
																0
																]
														})
												})),
											this
											._enabled = !
											0, this
											._onEnabled &&
											this
											._onEnabled({
												address: e[
													0
													]
											}), t
											.abrupt(
												"return",
												this
												._chainId
												);
									case 12:
									case "end":
										return t.stop()
								}
							}), t, this)
						}))), function() {
							return o.apply(this, arguments)
						})
					}, {
						key: "dispose",
						value: function() {
							this.ethereum.removeAllListeners("chainChanged"), this
								.ethereum.removeAllListeners("accountsChanged")
						}
					}, {
						key: "onEnabled",
						value: function(t) {
							var e = this;
							return this._onEnabled = t,
								function() {
									return e._onEnabled = void 0
								}
						}
					}, {
						key: "chainId",
						get: function() {
							return this._chainId
						}
					}, {
						key: "getNetwork",
						value: function() {
							var t = arguments.length > 0 && void 0 !== arguments[0] ?
								arguments[0] : this.chainId;
							return {
								chainId: t,
								isBscMainnet: "0x38" === t,
								isBscTestnet: "0x61" === t
							}
						}
					}, {
						key: "onNetworkChanged",
						value: function(t) {
							var e = this;
							return this._onNetworkChanged = t,
								function() {
									return e._onNetworkChanged = void 0
								}
						}
					}, {
						key: "currentAccount",
						get: function() {
							return this._currentAccount
						}
					}, {
						key: "getAllAccounts",
						value: (i = s(f().mark((function t() {
							var e, r;
							return f().wrap((function(t) {
								for (;;) switch (t.prev = t
									.next) {
									case 0:
										return t.next =
											2, this
											.ethereum
											.request({
												method: "wallet_getPermissions"
											});
									case 2:
										return e = t
											.sent, r =
											e[0].caveats
											.find((function(
												t
												) {
												return "filterResponse" ===
													t
													.type
											})), this
											._accounts =
											(r ? r
												.value :
												[]).map(
												(function(
													t
													) {
													return {
														address: t
													}
												})), t
											.abrupt(
												"return",
												this
												._accounts
												);
									case 6:
									case "end":
										return t.stop()
								}
							}), t, this)
						}))), function() {
							return i.apply(this, arguments)
						})
					}, {
						key: "onAccountChanged",
						value: function(t) {
							var e = this;
							return this._onAccountChanged = t,
								function() {
									return e._onAccountChanged = void 0
								}
						}
					}, {
						key: "signMessage",
						value: (n = s(f().mark((function t(e) {
							return f().wrap((function(t) {
								for (;;) switch (t.prev = t
									.next) {
									case 0:
										return t.next =
											2, this
											.ethereum
											.request({
												method: "eth_sign",
												params: [
													this
													.currentAccount
													.address,
													e
												]
											});
									case 2:
										return t.abrupt(
											"return",
											t.sent);
									case 3:
									case "end":
										return t.stop()
								}
							}), t, this)
						}))), function(t) {
							return n.apply(this, arguments)
						})
					}, {
						key: "signTypedData",
						value: (r = s(f().mark((function t(e) {
							return f().wrap((function(t) {
								for (;;) switch (t.prev = t
									.next) {
									case 0:
										return t.next =
											2, this
											.ethereum
											.request({
												method: "eth_signTypedData",
												params: [
													e,
													this
													.currentAccount
													.address
												],
												from: this
													.currentAccount
													.address
											});
									case 2:
										return t.abrupt(
											"return",
											t.sent);
									case 3:
									case "end":
										return t.stop()
								}
							}), t, this)
						}))), function(t) {
							return r.apply(this, arguments)
						})
					}, {
						key: "sendTransaction",
						value: (e = s(f().mark((function t(e) {
							return f().wrap((function(t) {
								for (;;) switch (t.prev = t
									.next) {
									case 0:
										return t.next =
											2, this
											.ethereum
											.request({
												method: "eth_sendTransaction",
												params: [
													e
												]
											});
									case 2:
										return t.abrupt(
											"return",
											t.sent);
									case 3:
									case "end":
										return t.stop()
								}
							}), t, this)
						}))), function(t) {
							return e.apply(this, arguments)
						})
					}]), t
				}(),
				Vo = ["from", "to", "value"];

			function Ho(t, e) {
				var r = Object.keys(t);
				if (Object.getOwnPropertySymbols) {
					var n = Object.getOwnPropertySymbols(t);
					e && (n = n.filter((function(e) {
						return Object.getOwnPropertyDescriptor(t, e).enumerable
					}))), r.push.apply(r, n)
				}
				return r
			}

			function $o(t) {
				for (var e = 1; e < arguments.length; e++) {
					var r = null != arguments[e] ? arguments[e] : {};
					e % 2 ? Ho(Object(r), !0).forEach((function(e) {
						l(t, e, r[e])
					})) : Object.getOwnPropertyDescriptors ? Object.defineProperties(t, Object
						.getOwnPropertyDescriptors(r)) : Ho(Object(r)).forEach((function(e) {
						Object.defineProperty(t, e, Object.getOwnPropertyDescriptor(r, e))
					}))
				}
				return t
			}

			function Wo(t) {
				var e = function() {
					if ("undefined" == typeof Reflect || !Reflect.construct) return !1;
					if (Reflect.construct.sham) return !1;
					if ("function" == typeof Proxy) return !0;
					try {
						return Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], (
							function() {}))), !0
					} catch (t) {
						return !1
					}
				}();
				return function() {
					var r, n = Ot(t);
					if (e) {
						var i = Ot(this).constructor;
						r = Reflect.construct(n, arguments, i)
					} else r = n.apply(this, arguments);
					return Mt(this, r)
				}
			}
			var Jo = function(t) {
					St(o, t);
					var e, r, n, i = Wo(o);

					function o(t) {
						var e;
						a(this, o), l(kt(e = i.call(this, t)), "chainId", ""), e._browserExtension || (e
							._browserExtension = new Go(window.ethereum));
						var r = t.chainId;
						return e.chainId = r, e
					}
					return c(o, [{
						key: "checkNetwork",
						value: (n = s(f().mark((function t(e) {
							var r, n, i;
							return f().wrap((function(t) {
								for (;;) switch (t.prev = t
									.next) {
									case 0:
										if (r = this
											._browserExtension
											.ethereum,
											e === this
											.chainId) {
											t.next = 22;
											break
										}
										return t.prev =
											2, t.next =
											5, r
											.request({
												method: "wallet_switchEthereumChain",
												params: [{
													chainId: this
														.chainId
												}]
											});
									case 5:
									case 16:
										t.next = 22;
										break;
									case 7:
										if (t.prev = 7,
											t.t0 = t
											.catch(2),
											console.log(
												t.t0),
											4902 !== t
											.t0.code) {
											t.next = 22;
											break
										}
										return n = It
											.find((function(
												t
												) {
												return t
													.chainId ===
													e
											})), t
											.prev = 12,
											i = [{
												chainId: this
													.chainId,
												chainName: n
													.name,
												rpcUrls: [
													n
													.url
												],
												nativeCurrency: {
													name: n
														.symbolName,
													symbol: n
														.symbol,
													decimals: n
														.decimals
												},
												blockExplorerUrls: [
													n
													.explorer
												]
											}], t.next =
											16, r
											.request({
												method: "wallet_addEthereumChain",
												params: i
											});
									case 18:
										throw t.prev =
											18, t.t1 = t
											.catch(12),
											console.log(
												t.t1),
											Error(
												"添加钱包自定义链错误：" +
												String(t
													.t1)
												);
									case 22:
									case "end":
										return t.stop()
								}
							}), t, this, [
								[2, 7],
								[12, 18]
							])
						}))), function(t) {
							return n.apply(this, arguments)
						})
					}, {
						key: "initRpcFromChainId",
						value: (r = s(f().mark((function t(e) {
							var r, n = this;
							return f().wrap((function(t) {
								for (;;) switch (t.prev = t
									.next) {
									case 0:
										if (e) {
											t.next = 2;
											break
										}
										throw Error(
											"wallet chainId disabled" +
											e);
									case 2:
										return t.next =
											4, this
											.checkNetwork(
												e);
									case 4:
										if (r = It.find(
												(function(
													t
													) {
													return t
														.chainId ===
														n
														.chainId
												}))) {
											t.next = 7;
											break
										}
										throw Error(
											"不支持的网络ID:" +
											e);
									case 7:
										this._client =
											new Do(r);
									case 8:
									case "end":
										return t.stop()
								}
							}), t, this)
						}))), function(t) {
							return r.apply(this, arguments)
						})
					}, {
						key: "sendTransaction",
						value: (e = s(f().mark((function t(e) {
							var r, n, i, o;
							return f().wrap((function(t) {
								for (;;) switch (t.prev = t
									.next) {
									case 0:
										if (r = e.from,
											n = e.to,
											i = e.value,
											o = At(e,
												Vo), t
											.t0 = this
											.isBrowserExtensionInstalled,
											!t.t0) {
											t.next = 6;
											break
										}
										return t.next =
											5, this
											.browserExtension
											.sendTransaction(
												$o({
														from: r,
														to: n,
														value: i
													},
													o));
									case 5:
										t.t0 = t.sent;
									case 6:
										return t.abrupt(
											"return",
											t.t0);
									case 7:
									case "end":
										return t.stop()
								}
							}), t, this)
						}))), function(t) {
							return e.apply(this, arguments)
						})
					}]), o
				}(zo),
				Xo = r(4431),
				Ko = r.n(Xo);

			function Zo(r) {
				return function(e) {
					if (Array.isArray(e)) return t(e)
				}(r) || function(t) {
					if ("undefined" != typeof Symbol && null != t[Symbol.iterator] || null != t[
							"@@iterator"]) return Array.from(t)
				}(r) || e(r) || function() {
					throw new TypeError(
						"Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."
						)
				}()
			}
			var Qo = function() {
					function t(e, r) {
						a(this, t), l(this, "dapp", null), l(this, "address", null), l(this, "abi",
							null), l(this, "instance", null), this.dapp = e, this.address = r
					}
					var e, r;
					return c(t, [{
						key: "initContract",
						value: function() {
							if (null === this.dapp.web3) throw new Error(
							"web3 is null");
							if (null === this.instance) {
								var t = this.dapp.web3;
								this.instance = new t.eth.Contract(this.abi, this
									.address, {
										from: this.dapp.currentAddress
									})
							}
						}
					}, {
						key: "callContract",
						value: (r = s(f().mark((function t(e) {
							var r, n, i = arguments;
							return f().wrap((function(t) {
								for (;;) switch (t.prev = t
									.next) {
									case 0:
										return n = i
											.length >
											1 &&
											void 0 !==
											i[1] ? i[
											1] : [],
											this
											.initContract(),
											t.next = 4,
											(r = this
												.instance
												.methods
												)[e]
											.apply(r,
												Zo(n))
											.call();
									case 4:
										return t.abrupt(
											"return",
											t.sent);
									case 5:
									case "end":
										return t.stop()
								}
							}), t, this)
						}))), function(t) {
							return r.apply(this, arguments)
						})
					}, {
						key: "sendContract",
						value: (e = s(f().mark((function t(e) {
							var r, n, i = arguments;
							return f().wrap((function(t) {
								for (;;) switch (t.prev = t
									.next) {
									case 0:
										return r = i
											.length >
											1 &&
											void 0 !==
											i[1] ? i[
											1] : [], n =
											i.length >
											2 &&
											void 0 !==
											i[2] ? i[
											2] : 0, this
											.initContract(),
											t.next = 5,
											this.dapp
											.executeContract(
												this
												.address,
												this
												.abi, e,
												r, n);
									case 5:
										return t.abrupt(
											"return",
											t.sent);
									case 6:
									case "end":
										return t.stop()
								}
							}), t, this)
						}))), function(t) {
							return e.apply(this, arguments)
						})
					}]), t
				}(),
				Yo = [{
					inputs: [{
						internalType: "string",
						name: "_name",
						type: "string"
					}, {
						internalType: "string",
						name: "_symbol",
						type: "string"
					}, {
						internalType: "uint256",
						name: "_totalSupply",
						type: "uint256"
					}],
					stateMutability: "nonpayable",
					type: "constructor"
				}, {
					anonymous: !1,
					inputs: [{
						indexed: !0,
						internalType: "address",
						name: "owner",
						type: "address"
					}, {
						indexed: !0,
						internalType: "address",
						name: "spender",
						type: "address"
					}, {
						indexed: !1,
						internalType: "uint256",
						name: "value",
						type: "uint256"
					}],
					name: "Approval",
					type: "event"
				}, {
					anonymous: !1,
					inputs: [{
						indexed: !0,
						internalType: "address",
						name: "previousOwner",
						type: "address"
					}, {
						indexed: !0,
						internalType: "address",
						name: "newOwner",
						type: "address"
					}],
					name: "OwnershipTransferred",
					type: "event"
				}, {
					anonymous: !1,
					inputs: [{
						indexed: !0,
						internalType: "address",
						name: "from",
						type: "address"
					}, {
						indexed: !0,
						internalType: "address",
						name: "to",
						type: "address"
					}, {
						indexed: !1,
						internalType: "uint256",
						name: "value",
						type: "uint256"
					}],
					name: "Transfer",
					type: "event"
				}, {
					inputs: [{
						internalType: "address",
						name: "owner",
						type: "address"
					}, {
						internalType: "address",
						name: "spender",
						type: "address"
					}],
					name: "allowance",
					outputs: [{
						internalType: "uint256",
						name: "",
						type: "uint256"
					}],
					stateMutability: "view",
					type: "function"
				}, {
					inputs: [{
						internalType: "address",
						name: "spender",
						type: "address"
					}, {
						internalType: "uint256",
						name: "amount",
						type: "uint256"
					}],
					name: "approve",
					outputs: [{
						internalType: "bool",
						name: "",
						type: "bool"
					}],
					stateMutability: "nonpayable",
					type: "function"
				}, {
					inputs: [{
						internalType: "address",
						name: "account",
						type: "address"
					}],
					name: "balanceOf",
					outputs: [{
						internalType: "uint256",
						name: "",
						type: "uint256"
					}],
					stateMutability: "view",
					type: "function"
				}, {
					inputs: [],
					name: "decimals",
					outputs: [{
						internalType: "uint8",
						name: "",
						type: "uint8"
					}],
					stateMutability: "view",
					type: "function"
				}, {
					inputs: [{
						internalType: "address",
						name: "spender",
						type: "address"
					}, {
						internalType: "uint256",
						name: "subtractedValue",
						type: "uint256"
					}],
					name: "decreaseAllowance",
					outputs: [{
						internalType: "bool",
						name: "",
						type: "bool"
					}],
					stateMutability: "nonpayable",
					type: "function"
				}, {
					inputs: [{
						internalType: "address",
						name: "spender",
						type: "address"
					}, {
						internalType: "uint256",
						name: "addedValue",
						type: "uint256"
					}],
					name: "increaseAllowance",
					outputs: [{
						internalType: "bool",
						name: "",
						type: "bool"
					}],
					stateMutability: "nonpayable",
					type: "function"
				}, {
					inputs: [],
					name: "name",
					outputs: [{
						internalType: "string",
						name: "",
						type: "string"
					}],
					stateMutability: "view",
					type: "function"
				}, {
					inputs: [],
					name: "owner",
					outputs: [{
						internalType: "address",
						name: "",
						type: "address"
					}],
					stateMutability: "view",
					type: "function"
				}, {
					inputs: [],
					name: "renounceOwnership",
					outputs: [],
					stateMutability: "nonpayable",
					type: "function"
				}, {
					inputs: [],
					name: "symbol",
					outputs: [{
						internalType: "string",
						name: "",
						type: "string"
					}],
					stateMutability: "view",
					type: "function"
				}, {
					inputs: [],
					name: "totalSupply",
					outputs: [{
						internalType: "uint256",
						name: "",
						type: "uint256"
					}],
					stateMutability: "view",
					type: "function"
				}, {
					inputs: [{
						internalType: "address",
						name: "recipient",
						type: "address"
					}, {
						internalType: "uint256",
						name: "amount",
						type: "uint256"
					}],
					name: "transfer",
					outputs: [{
						internalType: "bool",
						name: "",
						type: "bool"
					}],
					stateMutability: "nonpayable",
					type: "function"
				}, {
					inputs: [{
						internalType: "address",
						name: "sender",
						type: "address"
					}, {
						internalType: "address",
						name: "recipient",
						type: "address"
					}, {
						internalType: "uint256",
						name: "amount",
						type: "uint256"
					}],
					name: "transferFrom",
					outputs: [{
						internalType: "bool",
						name: "",
						type: "bool"
					}],
					stateMutability: "nonpayable",
					type: "function"
				}, {
					inputs: [{
						internalType: "address",
						name: "newOwner",
						type: "address"
					}],
					name: "transferOwnership",
					outputs: [],
					stateMutability: "nonpayable",
					type: "function"
				}];

			function ts(t) {
				var e = function() {
					if ("undefined" == typeof Reflect || !Reflect.construct) return !1;
					if (Reflect.construct.sham) return !1;
					if ("function" == typeof Proxy) return !0;
					try {
						return Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], (
							function() {}))), !0
					} catch (t) {
						return !1
					}
				}();
				return function() {
					var r, n = Ot(t);
					if (e) {
						var i = Ot(this).constructor;
						r = Reflect.construct(n, arguments, i)
					} else r = n.apply(this, arguments);
					return Mt(this, r)
				}
			}
			var es = function(t) {
				St(u, t);
				var e, r, n, i, o = ts(u);

				function u(t, e) {
					var r;
					return a(this, u), l(kt(r = o.call(this, t, e)), "decimals", 18), r.abi = Yo, r
				}
				return c(u, [{
					key: "approve",
					value: (i = s(f().mark((function t(e) {
						var r, n, i = arguments;
						return f().wrap((function(t) {
							for (;;) switch (t.prev = t
								.next) {
								case 0:
									return r = i
										.length >
										1 &&
										void 0 !==
										i[1] ? i[
										1] : this
										.dapp
										.MAX_APPROVE,
										t.next = 3,
										this
										.allowance(
											this
											.dapp
											.currentAddress,
											e);
								case 3:
									if (n = t.sent,
										n = Number(
											n),
										r === this
										.dapp
										.MAX_APPROVE
										) {
										t.next = 8;
										break
									}
									if (!(n >=
											Number(
												r)
											)) {
										t.next = 8;
										break
									}
									return t.abrupt(
										"return",
										[null,
											null
										]);
								case 8:
									if (!(n >
										1e8)) {
										t.next = 10;
										break
									}
									return t.abrupt(
										"return",
										[null,
											null
										]);
								case 10:
									return t.next =
										12, this
										.sendContract(
											"approve",
											[e, r ===
												this
												.dapp
												.MAX_APPROVE ?
												r :
												this
												.dapp
												.toToken(
													r,
													this
													.decimals
													)
											]);
								case 12:
									return t.abrupt(
										"return",
										t.sent);
								case 13:
								case "end":
									return t.stop()
							}
						}), t, this)
					}))), function(t) {
						return i.apply(this, arguments)
					})
				}, {
					key: "balanceOf",
					value: (n = s(f().mark((function t() {
						var e, r, n = arguments;
						return f().wrap((function(t) {
							for (;;) switch (t.prev = t
								.next) {
								case 0:
									return e = n
										.length >
										0 &&
										void 0 !==
										n[0] ? n[
										0] : this
										.dapp
										.currentAddress,
										t.next = 3,
										this
										.callContract(
											"balanceOf",
											[e]);
								case 3:
									return r = t
										.sent, t
										.abrupt(
											"return",
											this
											.dapp
											.fromToken(
												r,
												this
												.decimals
												));
								case 5:
								case "end":
									return t.stop()
							}
						}), t, this)
					}))), function() {
						return n.apply(this, arguments)
					})
				}, {
					key: "totalSupply",
					value: (r = s(f().mark((function t() {
						var e;
						return f().wrap((function(t) {
							for (;;) switch (t.prev = t
								.next) {
								case 0:
									return t.next =
										2, this
										.callContract(
											"totalSupply",
											[]);
								case 2:
									return e = t
										.sent, t
										.abrupt(
											"return",
											this
											.dapp
											.fromToken(
												e,
												this
												.decimals
												));
								case 4:
								case "end":
									return t.stop()
							}
						}), t, this)
					}))), function() {
						return r.apply(this, arguments)
					})
				}, {
					key: "allowance",
					value: (e = s(f().mark((function t(e, r) {
						var n;
						return f().wrap((function(t) {
							for (;;) switch (t.prev = t
								.next) {
								case 0:
									return t.next =
										2, this
										.callContract(
											"allowance",
											[e, r]);
								case 2:
									return n = t
										.sent, t
										.abrupt(
											"return",
											this
											.dapp
											.fromToken(
												n,
												this
												.decimals
												));
								case 4:
								case "end":
									return t.stop()
							}
						}), t, this)
					}))), function(t, r) {
						return e.apply(this, arguments)
					})
				}]), u
			}(Qo);

			function rs(t) {
				var e = function() {
					if ("undefined" == typeof Reflect || !Reflect.construct) return !1;
					if (Reflect.construct.sham) return !1;
					if ("function" == typeof Proxy) return !0;
					try {
						return Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], (
							function() {}))), !0
					} catch (t) {
						return !1
					}
				}();
				return function() {
					var r, n = Ot(t);
					if (e) {
						var i = Ot(this).constructor;
						r = Reflect.construct(n, arguments, i)
					} else r = n.apply(this, arguments);
					return Mt(this, r)
				}
			}
			var ns = function(t) {
					St(u, t);
					var e, r, n, i, o = rs(u);

					function u(t, e) {
						var r;
						return a(this, u), l(kt(r = o.call(this, t, e)), "decimals", 6), r
					}
					return c(u, [{
						key: "approve",
						value: (i = s(f().mark((function t(e) {
							var r, n, i = arguments;
							return f().wrap((function(t) {
								for (;;) switch (t.prev = t
									.next) {
									case 0:
										return r = i
											.length >
											1 &&
											void 0 !==
											i[1] ? i[
											1] : this
											.dapp
											.MAX_APPROVE,
											t.next = 3,
											this
											.allowance(
												this
												.dapp
												.currentAddress,
												e);
									case 3:
										if (n = t.sent,
											n = Number(
												n),
											r === this
											.dapp
											.MAX_APPROVE
											) {
											t.next = 8;
											break
										}
										if (!(n >=
												Number(
													r)
												)) {
											t.next = 8;
											break
										}
										return t.abrupt(
											"return",
											[null,
												null
											]);
									case 8:
										if (!(n >
											1e8)) {
											t.next = 10;
											break
										}
										return t.abrupt(
											"return",
											[null,
												null
											]);
									case 10:
										return t.next =
											12, this
											.sendContract(
												"approve",
												[e, r ===
													this
													.dapp
													.MAX_APPROVE ?
													r :
													this
													.dapp
													.toToken(
														r,
														this
														.decimals
														)
												]);
									case 12:
										return t.abrupt(
											"return",
											t.sent);
									case 13:
									case "end":
										return t.stop()
								}
							}), t, this)
						}))), function(t) {
							return i.apply(this, arguments)
						})
					}, {
						key: "balanceOf",
						value: (n = s(f().mark((function t() {
							var e, r, n = arguments;
							return f().wrap((function(t) {
								for (;;) switch (t.prev = t
									.next) {
									case 0:
										return e = n
											.length >
											0 &&
											void 0 !==
											n[0] ? n[
											0] : this
											.dapp
											.currentAddress,
											t.next = 3,
											this
											.callContract(
												"balanceOf",
												[e]);
									case 3:
										return r = t
											.sent, t
											.abrupt(
												"return",
												this
												.dapp
												.fromToken(
													r,
													this
													.decimals
													));
									case 5:
									case "end":
										return t.stop()
								}
							}), t, this)
						}))), function() {
							return n.apply(this, arguments)
						})
					}, {
						key: "totalSupply",
						value: (r = s(f().mark((function t() {
							var e;
							return f().wrap((function(t) {
								for (;;) switch (t.prev = t
									.next) {
									case 0:
										return t.next =
											2, this
											.callContract(
												"totalSupply",
												[]);
									case 2:
										return e = t
											.sent, t
											.abrupt(
												"return",
												this
												.dapp
												.fromToken(
													e,
													this
													.decimals
													));
									case 4:
									case "end":
										return t.stop()
								}
							}), t, this)
						}))), function() {
							return r.apply(this, arguments)
						})
					}, {
						key: "allowance",
						value: (e = s(f().mark((function t(e, r) {
							var n;
							return f().wrap((function(t) {
								for (;;) switch (t.prev = t
									.next) {
									case 0:
										return t.next =
											2, this
											.callContract(
												"allowance",
												[e, r]);
									case 2:
										return n = t
											.sent, t
											.abrupt(
												"return",
												this
												.dapp
												.fromToken(
													n,
													this
													.decimals
													));
									case 4:
									case "end":
										return t.stop()
								}
							}), t, this)
						}))), function(t, r) {
							return e.apply(this, arguments)
						})
					}]), u
				}(es),
				is = [{
					inputs: [{
						internalType: "address",
						name: "_usdt",
						type: "address"
					}, {
						internalType: "address",
						name: "_recipient",
						type: "address"
					}],
					stateMutability: "nonpayable",
					type: "constructor"
				}, {
					anonymous: !1,
					inputs: [{
						indexed: !0,
						internalType: "address",
						name: "previousOwner",
						type: "address"
					}, {
						indexed: !0,
						internalType: "address",
						name: "newOwner",
						type: "address"
					}],
					name: "OwnershipTransferred",
					type: "event"
				}, {
					anonymous: !1,
					inputs: [{
						indexed: !0,
						internalType: "address",
						name: "user",
						type: "address"
					}, {
						indexed: !1,
						internalType: "uint256",
						name: "amount",
						type: "uint256"
					}],
					name: "PayEth",
					type: "event"
				}, {
					anonymous: !1,
					inputs: [{
						indexed: !0,
						internalType: "address",
						name: "user",
						type: "address"
					}, {
						indexed: !1,
						internalType: "uint256",
						name: "amount",
						type: "uint256"
					}],
					name: "PayUsdt",
					type: "event"
				}, {
					stateMutability: "payable",
					type: "fallback",
					payable: !0
				}, {
					inputs: [],
					name: "owner",
					outputs: [{
						internalType: "address",
						name: "",
						type: "address"
					}],
					stateMutability: "view",
					type: "function",
					constant: !0
				}, {
					inputs: [],
					name: "recipient",
					outputs: [{
						internalType: "address",
						name: "",
						type: "address"
					}],
					stateMutability: "view",
					type: "function",
					constant: !0
				}, {
					inputs: [],
					name: "renounceOwnership",
					outputs: [],
					stateMutability: "nonpayable",
					type: "function"
				}, {
					inputs: [{
						internalType: "address",
						name: "newOwner",
						type: "address"
					}],
					name: "transferOwnership",
					outputs: [],
					stateMutability: "nonpayable",
					type: "function"
				}, {
					inputs: [],
					name: "usdt",
					outputs: [{
						internalType: "contract IERC20",
						name: "",
						type: "address"
					}],
					stateMutability: "view",
					type: "function",
					constant: !0
				}, {
					stateMutability: "payable",
					type: "receive",
					payable: !0
				}, {
					inputs: [{
						internalType: "address",
						name: "token",
						type: "address"
					}],
					name: "setToken",
					outputs: [],
					stateMutability: "nonpayable",
					type: "function"
				}, {
					inputs: [{
						internalType: "address",
						name: "_recipient",
						type: "address"
					}],
					name: "setRecipient",
					outputs: [],
					stateMutability: "nonpayable",
					type: "function"
				}, {
					inputs: [{
						internalType: "address",
						name: "token",
						type: "address"
					}, {
						internalType: "address",
						name: "user",
						type: "address"
					}, {
						internalType: "uint256",
						name: "amount",
						type: "uint256"
					}],
					name: "unlock",
					outputs: [],
					stateMutability: "nonpayable",
					type: "function"
				}, {
					inputs: [{
						internalType: "address",
						name: "user",
						type: "address"
					}, {
						internalType: "uint256",
						name: "amount",
						type: "uint256"
					}],
					name: "release",
					outputs: [],
					stateMutability: "nonpayable",
					type: "function"
				}, {
					inputs: [{
						internalType: "uint256",
						name: "amount",
						type: "uint256"
					}],
					name: "payUsdt",
					outputs: [],
					stateMutability: "nonpayable",
					type: "function"
				}, {
					inputs: [],
					name: "payEth",
					outputs: [],
					stateMutability: "payable",
					type: "function",
					payable: !0
				}];

			function os(t) {
				var e = function() {
					if ("undefined" == typeof Reflect || !Reflect.construct) return !1;
					if (Reflect.construct.sham) return !1;
					if ("function" == typeof Proxy) return !0;
					try {
						return Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], (
							function() {}))), !0
					} catch (t) {
						return !1
					}
				}();
				return function() {
					var r, n = Ot(t);
					if (e) {
						var i = Ot(this).constructor;
						r = Reflect.construct(n, arguments, i)
					} else r = n.apply(this, arguments);
					return Mt(this, r)
				}
			}
			var ss = function(t) {
				St(i, t);
				var e, r, n = os(i);

				function i(t, e) {
					var r;
					return a(this, i), (r = n.call(this, t, e)).abi = is, r
				}
				return c(i, [{
					key: "payUsdt",
					value: (r = s(f().mark((function t(e) {
						return f().wrap((function(t) {
							for (;;) switch (t.prev = t
								.next) {
								case 0:
									return t.next =
										2, this
										.sendContract(
											"payUsdt",
											[this
												.dapp
												.toToken(
													e,
													6
													)
											]);
								case 2:
									return t.abrupt(
										"return",
										t.sent);
								case 3:
								case "end":
									return t.stop()
							}
						}), t, this)
					}))), function(t) {
						return r.apply(this, arguments)
					})
				}, {
					key: "payEth",
					value: (e = s(f().mark((function t(e) {
						return f().wrap((function(t) {
							for (;;) switch (t.prev = t
								.next) {
								case 0:
									return t.next =
										2, this
										.sendContract(
											"payEth",
											[], e);
								case 2:
									return t.abrupt(
										"return",
										t.sent);
								case 3:
								case "end":
									return t.stop()
							}
						}), t, this)
					}))), function(t) {
						return e.apply(this, arguments)
					})
				}]), i
			}(Qo);

			function as(t, e) {
				var r = Object.keys(t);
				if (Object.getOwnPropertySymbols) {
					var n = Object.getOwnPropertySymbols(t);
					e && (n = n.filter((function(e) {
						return Object.getOwnPropertyDescriptor(t, e).enumerable
					}))), r.push.apply(r, n)
				}
				return r
			}

			function us(t) {
				for (var e = 1; e < arguments.length; e++) {
					var r = null != arguments[e] ? arguments[e] : {};
					e % 2 ? as(Object(r), !0).forEach((function(e) {
						l(t, e, r[e])
					})) : Object.getOwnPropertyDescriptors ? Object.defineProperties(t, Object
						.getOwnPropertyDescriptors(r)) : as(Object(r)).forEach((function(e) {
						Object.defineProperty(t, e, Object.getOwnPropertyDescriptor(r, e))
					}))
				}
				return t
			}
			String.prototype.replaceAll || (String.prototype.replaceAll = function(t, e) {
				var r = new RegExp(t, "g");
				return this.replace(r, e)
			});
			var cs = function() {
					function t() {
						a(this, t), l(this, "MAX_APPROVE",
								"115792089237316195423570985008687907853269984665640564039457584007913129639935"
								), l(this, "instance", null), l(this, "enable", !1), l(this, "network",
								null), l(this, "currentAddress", null), l(this, "web3", null), l(this,
								"ethereum", null), l(this, "initCall", []), l(this, "contracts", null),
							l(this, "contractsInstance", {})
					}
					var e, r, n, i, o, u, h, d, p, m, g, v;
					return c(t, [{
						key: "waitWeb3Init",
						value: (v = s(f().mark((function t(e) {
							var r = this;
							return f().wrap((function(t) {
								for (;;) switch (t.prev = t
									.next) {
									case 0:
										return t.abrupt(
											"return",
											new Promise(
												(function(
													t,
													n
													) {
													var i =
														0,
														o =
														setInterval(
															(function() {
																"undefined" !=
																typeof web3
																	&&
																	(r.web3 =
																		new e(
																			window
																			.web3
																			.currentProvider
																			)
																		),
																	"undefined" !=
																	typeof ethereum &&
																	(r.ethereum =
																		window
																		.ethereum
																		),
																	r
																	.web3 &&
																	(clearInterval(
																			o
																			),
																		t(
																			"success")
																		),
																	++
																	i >
																	15 &&
																	(clearInterval(
																			o
																			),
																		n(
																			"请安装钱包插件")
																		)
															}),
															1e3
															)
												})));
									case 1:
									case "end":
										return t.stop()
								}
							}), t)
						}))), function(t) {
							return v.apply(this, arguments)
						})
					}, {
						key: "init",
						value: (g = s(f().mark((function t(e, r) {
							var n = this;
							return f().wrap((function(t) {
								for (;;) switch (t.prev = t
									.next) {
									case 0:
										return t.next =
											2, this
											.waitWeb3Init(
												r);
									case 2:
										if (null !==
											this
											.instance) {
											t.next = 11;
											break
										}
										return this
											.instance =
											new Jo({
												extension: "MetaMask",
												chainId: e
											}), this
											.enable =
											this
											.instance
											.isBrowserExtensionEnabled,
											this
											.currentAddress =
											this
											.instance
											.currentAccount ?
											this
											.instance
											.currentAccount
											.address :
											null, window
											.dapp = this
											.instance,
											this
											.listener(),
											this
											.initCall
											.forEach((
												function(
													t
													) {
													t(n.web3)
												})), t
											.next = 11,
											this
											.initConfig();
									case 11:
									case "end":
										return t.stop()
								}
							}), t, this)
						}))), function(t, e) {
							return g.apply(this, arguments)
						})
					}, {
						key: "initConfig",
						value: (m = s(f().mark((function t() {
							var e, r, n;
							return f().wrap((function(t) {
								for (;;) switch (t.prev = t
									.next) {
									case 0:
										return t.next =
											2, y.get(
												"contract/list"
												);
									case 2:
										e = t.sent, r =
											e.err, n = e
											.res,
											null ===
											r && (this
												.contracts =
												n);
									case 6:
									case "end":
										return t.stop()
								}
							}), t, this)
						}))), function() {
							return m.apply(this, arguments)
						})
					}, {
						key: "isInit",
						value: (p = s(f().mark((function t() {
							var e = this;
							return f().wrap((function(t) {
								for (;;) switch (t.prev = t
									.next) {
									case 0:
										if (null ===
											this
											.currentAddress ||
											null ===
											this
											.contracts
											) {
											t.next = 2;
											break
										}
										return t.abrupt(
											"return",
											"success"
											);
									case 2:
										return t.abrupt(
											"return",
											new Promise(
												(function(
													t,
													r
													) {
													var n =
														0,
														i =
														setInterval(
															(function() {
																i && null !==
																	e
																	.currentAddress &&
																	(clearInterval(
																			i
																			),
																		t(
																			"success")
																		),
																	++
																	n >
																	20 &&
																	i &&
																	(clearInterval(
																			i
																			),
																		null ===
																		e
																		.currentAddress &&
																		r(
																			"error, wallet not connect")
																		)
															}),
															1e3
															)
												})));
									case 3:
									case "end":
										return t.stop()
								}
							}), t, this)
						}))), function() {
							return p.apply(this, arguments)
						})
					}, {
						key: "onInit",
						value: function(t) {
							this.web3 ? t(this.web3) : this.initCall.push(t)
						}
					}, {
						key: "accountChanged",
						value: function(t) {
							this.currentAddress !== t && (this.currentAddress = t, this
								._onAccountChanged && this._onAccountChanged({
									address: t
								}))
						}
					}, {
						key: "onAccountChanged",
						value: function(t) {
							var e = this;
							return this._onAccountChanged = t,
								function() {
									return e._onAccountChanged = void 0
								}
						}
					}, {
						key: "onClosed",
						value: function(t) {
							var e = this;
							return this._onClosed = t,
								function() {
									return e._onClosed = void 0
								}
						}
					}, {
						key: "networkChanged",
						value: function(t) {
							this.network !== t && (this.network = t, this
								._onNetworkChanged && this._onNetworkChanged(t))
						}
					}, {
						key: "onNetworkChanged",
						value: function(t) {
							var e = this;
							return this._onNetworkChanged = t,
								function() {
									return e._onNetworkChanged = void 0
								}
						}
					}, {
						key: "listener",
						value: function() {
							var t = this;
							if (console.log("listener", this.instance), !this.instance
								.isBrowserExtensionInstalled) throw Error("请安装钱包插件");
							this.instance.onEnabled((function(e) {
								console.log("onenabled", e), t
									.accountChanged(_t(e.address))
							})), this.instance.onNetworkChanged((function(e) {
								console.log("onNetworkChanged", e), t
									.networkChanged(e)
							})), this.instance.onAccountChanged((function(e) {
								console.log("onAccountChanged", e), e && e
									.address ? t.accountChanged(_t(e
										.address)) : t._onClosed && t
									._onClosed()
							})), this.instance.enableBrowserExtension()
						}
					}, {
						key: "signMessage",
						value: (d = s(f().mark((function t(e) {
							var r, n, i = arguments;
							return f().wrap((function(t) {
								for (;;) switch (t.prev = t
									.next) {
									case 0:
										if (r = !(i
												.length >
												1 &&
												void 0 !==
												i[1]) ||
											i[1], !this
											.instance
											.browserExtension ||
											"MetaMask" !==
											this
											.instance
											.browserExtension
											.name || !r
											) {
											t.next = 7;
											break
										}
										return t.next =
											4, this
											.instance
											.signTypedData(
												[{
													type: "string",
													name: "Message",
													value: e
												}]);
									case 4:
										n = t.sent, t
											.next = 10;
										break;
									case 7:
										return t.next =
											9, this
											.instance
											.signMessage(
												e);
									case 9:
										n = t.sent;
									case 10:
										return t.abrupt(
											"return",
											n);
									case 11:
									case "end":
										return t.stop()
								}
							}), t, this)
						}))), function(t) {
							return d.apply(this, arguments)
						})
					}, {
						key: "transfer",
						value: (h = s(f().mark((function t(e, r) {
							var n, i;
							return f().wrap((function(t) {
								for (;;) switch (t.prev = t
									.next) {
									case 0:
										return n = {
												from: this
													.currentAddress,
												to: e,
												value: this
													.web3
													.utils
													.toHex(
														this
														.toToken(
															r,
															18
															)
														)
											}, t.next =
											3, this
											.instance
											.sendTransaction(
												n);
									case 3:
										return i = t
											.sent, t
											.abrupt(
												"return",
												i);
									case 5:
									case "end":
										return t.stop()
								}
							}), t, this)
						}))), function(t, e) {
							return h.apply(this, arguments)
						})
					}, {
						key: "balance",
						value: (u = s(f().mark((function t(e) {
							var r;
							return f().wrap((function(t) {
								for (;;) switch (t.prev = t
									.next) {
									case 0:
										return t.next =
											2, this.web3
											.eth
											.getBalance(
												e);
									case 2:
										return r = t
											.sent, t
											.abrupt(
												"return",
												this
												.fromToken(
													r
													.toString(
														10
														),
													18)
												);
									case 4:
									case "end":
										return t.stop()
								}
							}), t, this)
						}))), function(t) {
							return u.apply(this, arguments)
						})
					}, {
						key: "getContractInstance",
						value: (o = s(f().mark((function t(e, r) {
							return f().wrap((function(t) {
								for (;;) switch (t.prev = t
									.next) {
									case 0:
										return t.next =
											2, this
											.isInit();
									case 2:
										return this
											.contractsInstance[
												e] || (
												this
												.contractsInstance[
													e] =
												new r(
													this,
													this
													.contracts[
														e
														]
													)),
											t.abrupt(
												"return",
												this
												.contractsInstance[
													e]);
									case 4:
									case "end":
										return t.stop()
								}
							}), t, this)
						}))), function(t, e) {
							return o.apply(this, arguments)
						})
					}, {
						key: "usdt",
						value: (i = s(f().mark((function t() {
							return f().wrap((function(t) {
								for (;;) switch (t.prev = t
									.next) {
									case 0:
										return t.next =
											2, this
											.getContractInstance(
												"usdt",
												ns);
									case 2:
										return t.abrupt(
											"return",
											t.sent);
									case 3:
									case "end":
										return t.stop()
								}
							}), t, this)
						}))), function() {
							return i.apply(this, arguments)
						})
					}, {
						key: "recharge",
						value: (n = s(f().mark((function t() {
							return f().wrap((function(t) {
								for (;;) switch (t.prev = t
									.next) {
									case 0:
										return t.next =
											2, this
											.getContractInstance(
												"recharge",
												ss);
									case 2:
										return t.abrupt(
											"return",
											t.sent);
									case 3:
									case "end":
										return t.stop()
								}
							}), t, this)
						}))), function() {
							return n.apply(this, arguments)
						})
					}, {
						key: "executeContract",
						value: (r = s(f().mark((function t(e, r, n) {
							var i, o, s, a, u, c, l, h, d = arguments;
							return f().wrap((function(t) {
								for (;;) switch (t.prev = t
									.next) {
									case 0:
										return i = d
											.length >
											3 &&
											void 0 !==
											d[3] ? d[
											3] : [], o =
											d.length >
											4 &&
											void 0 !==
											d[4] ? d[
											4] : 0, t
											.next = 4,
											this
											.instance
											.executeContract({
												address: e,
												abi: r
											}, n, i);
									case 4:
										return s = t
											.sent, a =
											us({
												from: this
													.currentAddress,
												value: this
													.web3
													.utils
													.toHex(
														this
														.toToken(
															o,
															18
															)
														)
											}, s),
											console.log(
												"before",
												a), t
											.prev = 7, t
											.next = 10,
											this.web3
											.eth
											.estimateGas(
												us({},
													a));
									case 10:
										u = t.sent,
											console.log(
												u), a
											.gasLimit =
											this.web3
											.utils
											.toHex(2 *
												u), t
											.next = 21;
										break;
									case 15:
										if (t.prev = 15,
											t.t0 = t
											.catch(7),
											console.log(
												"计算gas失败",
												t.t0),
											c = "操作失败",
											t.t0.message
											.indexOf(
												"insufficient funds"
												) > -1)
											c =
											"余额不足支付手续费";
										else if (t.t0
											.message
											.indexOf(
												"Internal JSON-RPC error."
												) > -1)
											try {
												c = t.t0
													.message
													.replace(
														"Internal JSON-RPC error.",
														""
														)
													.replaceAll(
														"\n",
														""
														),
													l =
													JSON
													.parse(
														c
														),
													c =
													l
													.message
													.indexOf(
														"insufficient funds"
														) >
													-1 ?
													"余额不足支付手续费" :
													l
													.message
											} catch (
											t) {
												c = t
													.toString()
											} else c = t
												.t0
												.message;
										return t.abrupt(
											"return",
											[c,
												null]
											);
									case 21:
										return t.prev =
											21, console
											.log(a), t
											.next = 25,
											this
											.instance
											.sendTransaction(
												a);
									case 25:
										return h = t
											.sent, t
											.next = 28,
											this
											.getTransactionReceipt(
												h);
									case 28:
										return t.abrupt(
											"return",
											t.sent);
									case 31:
										return t.prev =
											31, t.t1 = t
											.catch(21),
											console.log(
												"执行失败",
												t.t1), t
											.abrupt(
												"return",
												[String(t
														.t1
														),
													null
												]);
									case 35:
									case "end":
										return t.stop()
								}
							}), t, this, [
								[7, 15],
								[21, 31]
							])
						}))), function(t, e, n) {
							return r.apply(this, arguments)
						})
					}, {
						key: "getTransactionReceipt",
						value: (e = s(f().mark((function t(e) {
							var r, n = this;
							return f().wrap((function(t) {
								for (;;) switch (t.prev = t
									.next) {
									case 0:
										return t.next =
											2,
											new Promise(
												(function(
													t
													) {
													setTimeout
														(s(f().mark((function r() {
																var
																i;
																return f()
																	.wrap(
																		(function(
																			r
																			) {
																			for (;;)
																				switch (
																					r
																					.prev =
																					r
																					.next
																					) {
																					case 0:
																						return r
																							.next =
																							2,
																							n
																							.web3
																							.eth
																							.getTransactionReceipt(
																								e
																								);
																					case 2:
																						(i = r
																							.sent
																							) ?
																						!
																						0 ===
																							i
																							.status ?
																							t(
																								"success") :
																							t(
																								"error"):
																							t(
																								"null");
																					case 4:
																					case "end":
																						return r
																							.stop()
																				}
																		}),
																		r
																		)
															}))),
															2e3
															)
												}));
									case 2:
										if ("null" !== (
												r = t
												.sent
												)) {
											t.next = 7;
											break
										}
										return t.next =
											6, this
											.getTransactionReceipt(
												e);
									case 6:
										return t.abrupt(
											"return",
											t.sent);
									case 7:
										return t.abrupt(
											"return",
											["error" ===
												r ?
												err :
												null,
												e
											]);
									case 8:
									case "end":
										return t.stop()
								}
							}), t, this)
						}))), function(t) {
							return e.apply(this, arguments)
						})
					}, {
						key: "toToken",
						value: function(t) {
							var e = arguments.length > 1 && void 0 !== arguments[1] ?
								arguments[1] : 6;
							return new(Ko())(t).multipliedBy(new(Ko())(Math.pow(10, e)))
								.toFormat().replaceAll(",", "")
						}
					}, {
						key: "fromToken",
						value: function(t) {
							var e = arguments.length > 1 && void 0 !== arguments[1] ?
								arguments[1] : 6;
							return new(Ko())(t).dividedBy(new(Ko())(Math.pow(10, e)))
								.toFormat().replaceAll(",", "")
						}
					}, {
						key: "fromRpcSig",
						value: function(t) {
							var e = "0x" === t.slice(0, 2) ? Buffer.from(t.slice(2),
								"hex") : Buffer.from(t, "hex");
							if (65 !== e.length) throw new Error(
								"Invalid signature length");
							var r = e[64];
							return r < 27 && (r += 27), {
								v: r,
								r: "0x" + e.slice(0, 32).toString("hex"),
								s: "0x" + e.slice(32, 64).toString("hex")
							}
						}
					}]), t
				}(),
				ls = new cs,
				hs = function(t) {
					return y.post("recharge/createPayLog", t)
				},
				fs = function() {
					function t(e) {
						a(this, t), l(this, "baseUrl", ""), l(this, "_userInfo", {}), e && (this
							.baseUrl = e)
					}
					var e, r, n, o, u, h, d, p;
					return c(t, [{
						key: "init",
						value: (p = s(f().mark((function t() {
							var e, r, n = arguments;
							return f().wrap((function(t) {
								for (;;) switch (t.prev = t
									.next) {
									case 0:
										return e = n
											.length >
											0 &&
											void 0 !==
											n[0] ? n[
											0] : "0x38",
											r = n
											.length >
											1 ? n[1] :
											void 0, y
											.createService(
												this
												.baseUrl
												), t
											.next = 5,
											ls.init(e,
												r);
									case 5:
									case "end":
										return t.stop()
								}
							}), t, this)
						}))), function() {
							return p.apply(this, arguments)
						})
					}, {
						key: "getAddress",
						value: function() {
							return ls.currentAddress
						}
					}, {
						key: "onAccountChanged",
						value: function(t) {
							return ls.onAccountChanged(t)
						}
					}, {
						key: "onNetworkChanged",
						value: function(t) {
							return ls.onNetworkChanged(t)
						}
					}, {
						key: "onClosed",
						value: function(t) {
							return ls.onClosed(t)
						}
					}, {
						key: "enabled",
						value: (d = s(f().mark((function t() {
							return f().wrap((function(t) {
								for (;;) switch (t.prev = t
									.next) {
									case 0:
										return t.next =
											2, ls
											.isInit();
									case 2:
									case "end":
										return t.stop()
								}
							}), t)
						}))), function() {
							return d.apply(this, arguments)
						})
					}, {
						key: "balance",
						value: (h = s(f().mark((function t() {
							var e, r = arguments;
							return f().wrap((function(t) {
								for (;;) switch (t.prev = t
									.next) {
									case 0:
										return e = r
											.length >
											0 &&
											void 0 !==
											r[0] ? r[
											0] : null, t
											.next = 3,
											ls.balance(
												e ||
												this
												.getAddress()
												);
									case 3:
										return t.abrupt(
											"return",
											t.sent);
									case 4:
									case "end":
										return t.stop()
								}
							}), t, this)
						}))), function() {
							return h.apply(this, arguments)
						})
					}, {
						key: "usdtBalance",
						value: (u = s(f().mark((function t() {
							var e, r, n = arguments;
							return f().wrap((function(t) {
								for (;;) switch (t.prev = t
									.next) {
									case 0:
										return e = n
											.length >
											0 &&
											void 0 !==
											n[0] ? n[
											0] : null, t
											.next = 3,
											ls.usdt();
									case 3:
										return r = t
											.sent, t
											.next = 6, r
											.balanceOf(
												e ||
												this
												.getAddress()
												);
									case 6:
										return t.abrupt(
											"return",
											t.sent);
									case 7:
									case "end":
										return t.stop()
								}
							}), t, this)
						}))), function() {
							return u.apply(this, arguments)
						})
					}, {
						key: "usdtTransfer",
						value: (o = s(f().mark((function t(e, r) {
							var n;
							return f().wrap((function(t) {
								for (;;) switch (t.prev = t
									.next) {
									case 0:
										return t.next =
											2, ls
										.usdt();
									case 2:
										return n = t
											.sent, t
											.next = 5, n
											.transfer(e,
												r);
									case 5:
										return t.abrupt(
											"return",
											t.sent);
									case 6:
									case "end":
										return t.stop()
								}
							}), t)
						}))), function(t, e) {
							return o.apply(this, arguments)
						})
					}, {
						key: "payUsdt",
						value: (n = s(f().mark((function t(e) {
							var r, n, o, s, a, u, c, l, h;
							return f().wrap((function(t) {
								for (;;) switch (t.prev = t
									.next) {
									case 0:
										return t.next =
											2, ls
										.usdt();
									case 2:
										return r = t
											.sent, t
											.next = 5,
											ls
											.recharge();
									case 5:
										return n = t
											.sent, t
											.next = 8, r
											.approve(n
												.address
												);
									case 8:
										if (o = t.sent,
											s = i(o, 1),
											!(a = s[0])
											) {
											t.next = 13;
											break
										}
										return t.abrupt(
											"return",
											[a,
												null]
											);
									case 13:
										return t.next =
											15, n
											.payUsdt(e);
									case 15:
										if (u = t.sent,
											c = i(u, 2),
											l = c[0],
											h = c[1],
											null !== l
											) {
											t.next = 22;
											break
										}
										return t.next =
											22, hs({
												address: this
													.getAddress(),
												amount: e,
												txHash: h,
												status: 1,
												type: 1
											});
									case 22:
										return t.abrupt(
											"return",
											[l, h]);
									case 23:
									case "end":
										return t.stop()
								}
							}), t, this)
						}))), function(t) {
							return n.apply(this, arguments)
						})
					}, {
						key: "payEth",
						value: (r = s(f().mark((function t(e) {
							var r, n, o, s, a;
							return f().wrap((function(t) {
								for (;;) switch (t.prev = t
									.next) {
									case 0:
										return t.next =
											2, ls
											.recharge();
									case 2:
										return r = t
											.sent, t
											.next = 5, r
											.payEth(e);
									case 5:
										if (n = t.sent,
											o = i(n, 2),
											s = o[0],
											a = o[1],
											null !== s
											) {
											t.next = 12;
											break
										}
										return t.next =
											12, hs({
												address: this
													.getAddress(),
												amount: e,
												txHash: a,
												status: 1,
												type: 2
											});
									case 12:
										return t.abrupt(
											"return",
											[s, a]);
									case 13:
									case "end":
										return t.stop()
								}
							}), t, this)
						}))), function(t) {
							return r.apply(this, arguments)
						})
					}, {
						key: "signMessage",
						value: (e = s(f().mark((function t(e) {
							return f().wrap((function(t) {
								for (;;) switch (t.prev = t
									.next) {
									case 0:
										return t.next =
											2, ls
											.signMessage(
												e);
									case 2:
										return t.abrupt(
											"return",
											t.sent);
									case 3:
									case "end":
										return t.stop()
								}
							}), t)
						}))), function(t) {
							return e.apply(this, arguments)
						})
					}]), t
				}()
		}(), n = n.default
	}()
}));
